10 May 2025PythonEasy

Convert Sorted Array to Binary Search Tree

build balanced bst from sorted array by recursively using middle element as root.

recursively: pick middle element as root, left half becomes left subtree, right half becomes right subtree. this ensures balanced tree.

base case: empty array returns null. the middle element naturally creates a balanced structure since we split evenly.

complexity

O(n) time to visit each element once, O(log n) space for recursion stack. balanced tree height is log n.

Solution files

Pythonconvert-sorted-array-to-binary-search-tree/solution.py
class Solution:
    def sortedArrayToBST(self, nums: List[int]) -> Optional[TreeNode]:
        total_nums = len(nums)
        if not total_nums:
            return None

        mid_node = total_nums class=class="syntax-string">"syntax-comment">// class="syntax-number">2
        return TreeNode(
            nums[mid_node], 
            self.sortedArrayToBST(nums[:mid_node]), self.sortedArrayToBST(nums[mid_node + class="syntax-number">1 :])
        )