1. 题目考点
- dfs 建树
- 类似题目: 重建二叉树
2. 考点解析
public TreeNode sortedArrayToBST (int[] num) {
// write code here
if (num.length == 0) return null;
return f(num);
}
public TreeNode f(int[] num) {
if (num.length == 0) return null;
int mid = num.length / 2;
TreeNode root = new TreeNode(0);
root.val = num[mid];
root.left = f(Arrays.copyOfRange(num, 0, mid));
root.right = f(Arrays.copyOfRange(num, mid + 1, num.length));
return root;
}