Untitled
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