
public TreeNode sortedArrayToBST(int[] nums) {
if (nums == null || nums.length == 0) {
return null;
}
return getBST(nums, 0, nums.length - 1);
}
private TreeNode getBST(int[] nums, int left, int right) {
if (left > right || left < 0 || right >= nums.length) {
return null;
}
if (left == right) {
return new TreeNode(nums[left]);
}
int mid = left + (right - left) / 2;
TreeNode node = new TreeNode(nums[mid]);
node.left = getBST(nums, left, mid - 1);
node.right = getBST(nums, mid + 1, right);
return node;
}