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