题解 | #将升序数组转化为平衡二叉搜索树# 分治法
将升序数组转化为平衡二叉搜索树
https://www.nowcoder.com/practice/7e5b00f94b254da599a9472fe5ab283d
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return TreeNode类
*/
TreeNode buildTree(int arr[]){
int len = arr.length;
if(len == 0){
return null;
}
if(len == 1){
return new TreeNode(arr[0]);
}
int midIdx = len/2;
int midVal = arr[midIdx];
TreeNode node = new TreeNode(midVal);
node.left = buildTree(Arrays.copyOfRange(arr,0,midIdx));
node.right = buildTree(Arrays.copyOfRange(arr,midIdx+1,len));
return node;
}
public TreeNode sortedArrayToBST (int[] nums) {
return buildTree(nums);
}
}
取中间点,左右递归
传音控股公司福利 333人发布
