class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
return recursion(nums, 0, nums.length-1);
}
private TreeNode recursion(int[] nums, int low, int high){
if(low>high) return null;
// use int mid = (hi + lo) / 2, for overflow protection,
// mid will be mid or mid-left in the array from[low, high];
int mid = (low+high)/2;
TreeNode node = new TreeNode(nums[mid]);
node.left = recursion(nums, low, mid-1);
node.right = recursion(nums, mid+1,high);
return node;
}
}