/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public TreeNode sortedArrayToBST(int[] num) { if (num == null) return null; int len = num.length; return build(num, 0, len - 1); } private TreeNode build(int[] num, int lo, int hi) { if (lo > hi) return null; int mid = lo + (hi - lo) / 2; TreeNode node = new TreeNode(num[mid]); node.left = build(num, lo, mid - 1); node.right = build(num, mid + 1, hi); return node; } }