1 /**
2 * Definition for binary tree
3 * public class TreeNode {
4 * int val;
5 * TreeNode left;
6 * TreeNode right;
7 * TreeNode(int x) { val = x; }
8 * }
9 */
10 public class Solution {
11 public TreeNode sortedArrayToBST(int[] num) {
12 // IMPORTANT: Please reset any member data you declared, as
13 // the same Solution instance will be reused for each test case.
14 if(num == null)
15 return null;
16 return sortedArrayToBST(num, 0, num.length - 1);
17 }
18
19 private TreeNode sortedArrayToBST(int[] num, int start, int end)
20 {
21 if(start > end)
22 return null;
23 int mid = (start + end)/2;
24 TreeNode tmp = new TreeNode(num[mid]);
25 tmp.left = sortedArrayToBST(num, start, mid - 1);
26 tmp.right = sortedArrayToBST(num, mid + 1, end);
27 return tmp;
28 }
29 }