力扣HOT100 - 108. 将有序数组转换为二叉搜索树

解题思路:

二叉搜索树一般使用中序遍历

java 复制代码
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        return helper(nums,0,nums.length-1);
    }
    public TreeNode helper(int[] nums,int left,int right){
        if(left>right) return null;

        //确定根节点
        //总是选择中间位置左边的数字作为根节点
        //也可以用 int mid = (left + right + 1) / 2; 总是选择中间位置右边的数字作为根节点
        int mid=(left+right)/2;
        TreeNode root=new TreeNode(nums[mid]);

        root.left=helper(nums,left,mid-1);
        root.right=helper(nums,mid+1,right);
        return root;
    }
}
相关推荐
深入云栈12 小时前
CompleteFuture VS CompletableFuture:Netty 为何自研 Future
java·架构
choumou_M12 小时前
SpringBoot_7:用户资源的上传与修改
java·spring boot·后端
十铭忘13 小时前
HMM(隐马尔可夫模型)的理解7——Baum–Welch 算法
人工智能·算法
user_admin_god13 小时前
一体化数据归集接口详细设计说明
java·大数据·spring boot·后端·spring
明月_清风13 小时前
十大经典排序算法 Go 实现全解:从入门到面试通关
后端·算法·排序算法
LlmCraft|大模型工程实践13 小时前
08. Docker Compose 一键编排:多容器应用的指挥家
java·spring cloud·eureka
liliangcsdn13 小时前
如何对IC时间序列进行汇总统计分析示例
人工智能·算法·机器学习
珍珠先生13 小时前
第14章 设计模式入门:单例、工厂、建造者与代理
java
坐吃山猪13 小时前
JDK 8 到 JDK 21 新特性知识要点
java·开发语言·windows
坐吃山猪14 小时前
【多线程】FutureTask多线程底层实现
java·开发语言·数据库