diff --git a/binary_search_trees/array_to_bst.py b/binary_search_trees/array_to_bst.py index f69cc42..145cfae 100644 --- a/binary_search_trees/array_to_bst.py +++ b/binary_search_trees/array_to_bst.py @@ -4,10 +4,20 @@ def __init__(self, value, left = None, right = None): self.left = left self.right = right - def arr_to_bst(arr): """ Given a sorted array, write a function to create a Balanced Binary Search Tree using the elements in the array. Return the root of the Binary Search Tree. + + Time Complexity = O(logn) + Space Complexity = O(n) """ - pass \ No newline at end of file + + if not arr: + return None + + mid = (len(arr)) // 2 + root = TreeNode(arr[mid]) + root.left = arr_to_bst(arr[:mid]) + root.right = arr_to_bst(arr[mid+1:]) + return root