public TreeNode sortedArrayToBST(int[] nums) {
if (Objects.isNull(nums) || nums.length ==0 )return null;
int length = nums.length;
TreeNode root = new TreeNode(nums[(length-1)/2]);
System.out.println(root.val);
root.left = create(0,(length-1)/2-1,nums);
root.right = create((length-1)/2+1,length-1,nums);
return root;
}
TreeNode create(int p,int q,int[] nums){
if (p > q) return null;
int mind = (q+p)/2;
TreeNode node = new TreeNode(nums[mind]);
node.left = create(p,mind-1,nums);
node.right = create(mind+1,q,nums);
return node;
}
public TreeNode sortedArrayToBST(int[] nums) {
return create(0,nums.length-1,nums);
}
TreeNode create(int p,int q,int[] nums){
if (p > q) return null;
int mid = (q+p)/2;
TreeNode node = new TreeNode(nums[mid]);
node.left = create(p,mid-1,nums);
node.right = create(mid+1,q,nums);
return node;
}