Untitled

 avatar
unknown
plain_text
a month ago
664 B
2
Indexable
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        return buildTree(nums, 0, nums.length - 1);
    }

    private TreeNode buildTree(int[] nums, int left, int right) {
        if (left > right) {
            return null; // Base case: no elements to form a tree
        }

        int mid = left + (right - left) / 2; // Avoid overflow for large indices
        TreeNode root = new TreeNode(nums[mid]); // Middle element as root

        // Recursively build left and right subtrees
        root.left = buildTree(nums, left, mid - 1);
        root.right = buildTree(nums, mid + 1, right);

        return root;
    }
}
Leave a Comment