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 }