108. 将有序数组转换为二叉搜索树


来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
由于是升序的。拆分。
// 拆分两部分 左部分 中间值 右部分
public TreeNode sortedArrayToBST(int[] nums) {
return dfs(nums,0,nums.length-1);
}
public TreeNode dfs(int[] nums, int l, int r) {
// [0,1] 变成了:[0,-1] 0 [1,1]
// 所以左半部分就是null
if(l>r) {
return null;
}
if(l == r) {
return new TreeNode(nums[l]);
}
int mid = l+(r-l)/2;
TreeNode left = dfs(nums,l,mid-1);
TreeNode right = dfs(nums,mid+1,r);
TreeNode root = new TreeNode(nums[mid]);
root.left = left;
root.right = right;
return root;
}
浙公网安备 33010602011771号