/**
* 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 || num.length==0) return null;
return helper(num, 0, num.length-1);
}
private TreeNode helper(int[] num, int start, int end) {
if (start <= end) {
TreeNode res = new TreeNode(num[(start+end)/2]);
res.left = helper(num, start, (start+end)/2-1);
res.right = helper (num, (start+end)/2+1, end);
return res;
} else return null;
}
}
1. recursive.
回复删除2. 构建一个树的时候需要root.val, root.left, root.right.