diff --git a/binary_search_trees/array_to_bst.py b/binary_search_trees/array_to_bst.py index f69cc42..69b1669 100644 --- a/binary_search_trees/array_to_bst.py +++ b/binary_search_trees/array_to_bst.py @@ -1,3 +1,6 @@ +from hashlib import new + + class TreeNode: def __init__(self, value, left = None, right = None): self.val = value @@ -5,9 +8,22 @@ def __init__(self, value, left = None, right = None): self.right = right +def helper(arr, left, right): + if left > right: + return None + mid = (left + right) // 2 + new_node = TreeNode(arr[mid]) + new_node.left = helper(arr, left, mid-1) + new_node.right = helper(arr, mid+1, right) + return new_node + 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. """ - pass \ No newline at end of file + # if arr is empty, return None + if not arr: + return None + + return helper(arr, 0, len(arr)-1) \ No newline at end of file