Actually, this array `nums`

is the in-order expression of the BST. So the center element is its root, the left is its left sub-tree and the right is its right sub-tree.

```
public TreeNode sortedArrayToBST(int[] nums) {
if (nums == null || nums.length == 0)
return null;
return recursionNode(nums, 0, nums.length - 1);
}
private TreeNode recursionNode(int[] nums, int start, int end){
if (start > end) return null;
if (start == end) return new TreeNode(nums[start]);
int center = (end + 1 - start) / 2 + start;
TreeNode root = new TreeNode(nums[center]);
root.left = recursionNode(nums, start, center - 1);
root.right = recursionNode(nums, center + 1, end);
return root;
}
```