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));
    }
}
相关推荐
幽络源小助理1 分钟前
Yolo-Seg实例分割自动标注工具-幽络源原创
算法·yolo·实例分割·自动标注
橘颂TA17 分钟前
【剑斩OFFER】算法的暴力美学——LeetCode 703 题:数据流中的第 K 大元素
网络·算法·结构与算法
信奥卷王25 分钟前
2025年9月GESPC++四级真题解析(含视频)
数据结构·c++·算法
朔北之忘 Clancy27 分钟前
第一章 顺序结构程序设计(2)
c++·算法·青少年编程·竞赛·教材·考级·讲义
小程同学>o<31 分钟前
嵌入式之C语言面试题(一)基本概念及其它问答题
c语言·面试·职场和发展·嵌入式软件·c语言面试
橘颂TA31 分钟前
【剑斩OFFER】算法的暴力美学——力扣 1046 题:最后一块石头的重量
算法·leetcode·职场和发展
ldccorpora34 分钟前
GALE Phase 1 Distillation Training数据集介绍,官网编号LDC2007T20
人工智能·深度学习·算法·机器学习·自然语言处理·语音识别
有一个好名字35 分钟前
力扣- 统计二叉树中好节点的数目
算法·leetcode·职场和发展
Star Learning Python39 分钟前
面试中要求“熟练掌握SQL”
sql·面试·职场和发展
jghhh011 小时前
三维热传导方程和泊松方程的有限元方法MATLAB实现
开发语言·算法·matlab