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

题目

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。

高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。

解题思路

  1. 可以采用二分法,每次选数组中间值为根节点创建树,这样可以确保左右子树的高度差的绝对值不超过1;
  2. 通过递归来逐级生成后续节点;
  3. 可通过变量设置左右边界,方便后续节点区间的取值;

代码展示

java 复制代码
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        TreeNode data = toBST(nums, 0, nums.length - 1);
        return data;
    }
    public TreeNode toBST(int[] nums, int left, int right){
        if(left > right){
            return null;
        }
        int middle = (left + right) / 2;
        return new TreeNode(nums[middle], toBST(nums, left, middle - 1), toBST(nums, middle + 1, right));
    }
}
相关推荐
Tisfy16 分钟前
LeetCode 3665.统计镜子反射路径数目:三个动态规划数组
leetcode·动态规划·代理模式·题解
怕浪猫1 小时前
Super-agent 在各大模型厂商的应用情况
算法·面试·github
天真小巫1 小时前
2026.11.1总结
职场和发展
海绵宝宝转agent1 小时前
LeetCode100 二叉树个人题解
算法·leetcode·深度优先
octopus_c1 小时前
C++ 模板详解:函数模板、类模板、特化与分离编译
开发语言·c++·算法
東隅已逝,桑榆非晚1 小时前
算法1. 双指针法-移动零
c++·算法
CQU_JIAKE2 小时前
11.1[A]
算法
文丑颜不良啊2 小时前
LeetCode1581~1600题目解析
java·leetcode
小郎君6583 小时前
(六)el-cascader 的展示值为什么不能直接 join:emitPath、路径还原与多选去重
vue.js·算法
郝学胜-神的一滴4 小时前
游戏设计:原型与开发 19:U3D工位布置与性格说明书
人工智能·算法·unity·unreal engine·游戏策划·游戏设计