Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion binary_search_trees/array_to_bst.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,19 @@ def arr_to_bst(arr):
Balanced Binary Search Tree using the elements in the array.
Return the root of the Binary Search Tree.
"""
pass
if not arr:
return None

# Recusive approach:
# Find the middle index of the array
mid = len(arr) // 2

# Create a new root node with the value of mid
root = TreeNode(arr[mid])

# Left subtree has all the elements less than mid
root.left = arr_to_bst(arr[:mid])
# Right subtree has all the elements to greater or equal to mid
root.right = arr_to_bst(arr[mid + 1:])

return root