题目链接
解题思路
- 选择最中间的值最为
根节点
,左边为left
,右边为right
,递归生成一颗平衡二叉树
AC代码
class Solution {
public static TreeNode sortedArrayToBST(int[] nums) {
return dfs(nums, 0, nums.length);
}
private static TreeNode dfs(int[] nums, int start, int end) {
if (start == end)
return null;
int mid = (start + end) >> 1;
TreeNode root = new TreeNode(nums[mid]);
root.left = dfs(nums, start, mid);
root.right = dfs(nums, mid + 1, end);
return root;
}
}