力扣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;
    }
}
相关推荐
水无痕simon13 小时前
1 银行业务之个人存款业务
java
冻柠檬飞冰走茶13 小时前
PTA基础编程题目集 7-37 整数分解为若干项之和(C语言实现)
c语言·开发语言·数据结构·算法
long31613 小时前
PostgreSQL 学习资料 · 入门 / 练习 / 精通 / 扩展
java·数据结构·数据库·spring boot·sql·postgresql·数据库开发
zzzll111114 小时前
RAG(检索增强生成)技术详解:从原理到实践
java·人工智能
Seven9714 小时前
用300行代码带你手写简化版RPC框架
java
运维大师14 小时前
【K8S 运维实战】31-Helm包管理
运维·算法·kubernetes
烬羽14 小时前
一个队列,怎么让滑动窗口从 O(nk) 变 O(n)?单调队列彻底搞懂
javascript·数据结构·算法
Alex Gram14 小时前
双机热备软件哪个好
java·系统架构·c#·keepalived·高可用·双机热备·双机热备软件
XH华14 小时前
C++语言第四章:模板初阶
数据结构·c++·算法
纳兰青华14 小时前
拼图大师:从“暴力尝试“到“动态规划“的拆字艺术
java·算法·动态规划