LeetCode-108.-将有序数组转换为二叉搜索树
目录
LeetCode 108. 将有序数组转换为二叉搜索树
【递归构建】每次选中间的点作为根节点
class Solution {
int[] nums;
public TreeNode dfs(int left, int right){
if(left > right) return null;
if(left == right) return new TreeNode(nums[left]);
int mid = (left + right) >>> 1;
TreeNode l = dfs(left, mid - 1);
TreeNode r = dfs(mid + 1, right);
return new TreeNode(nums[mid], l, r);
}
public TreeNode sortedArrayToBST(int[] nums) {
this.nums = nums;
return dfs(0, nums.length - 1);
}
}