hot100-40将有序数组转换为二叉搜索树

一、题目

给定一个整数数组nums,其中元素按升序排列,转换为一个平衡二叉搜索树。

二、思路

1、二叉搜索树的特性是左子树 < 根节点 < 右子树,对于升序数组,选择数组的中间节点作为根节点,左半部分构造左子树,右半部分构造右子树。

2、递归终止条件left > right,左子树范围:[left, mid - 1]右子树范围:[mid + 1, right]

三、代码

复制代码
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        int left = 0, right = nums.length-1;
        TreeNode root = sort(nums,left,right);
        return root;
    }
    private TreeNode sort(int[] nums,int left,int right){
        if(left > right) return null;
        int mid = left + (right - left) / 2;
        TreeNode node = new TreeNode(nums[mid]);
        node.left = sort(nums,left,mid-1);
        node.right = sort(nums,mid+1,right);
        return node;
    }
}
相关推荐
一只齐刘海的猫6 分钟前
【Leetcode】找到字符串中所有字母异位词
算法·leetcode·职场和发展
海清河晏11128 分钟前
数据结构 | 八大排序
数据结构·算法·排序算法
liulilittle1 小时前
固定数组时间轮的槽过载优化:桶链表与批次执行
网络·数据结构·链表
IronMurphy2 小时前
【算法五十七】146. LRU 缓存
算法·缓存
Irissgwe2 小时前
数据结构-栈和队列
数据结构·c++·c·栈和队列
两片空白2 小时前
数据容器集合set/frozenset
数据结构
凌波粒2 小时前
LeetCode--108.将有序数组转换为二叉搜索树(二叉树)
算法·leetcode·职场和发展
liulilittle2 小时前
KCC:在 BBR 思路上的一次探索
网络·tcp/ip·算法·bbr·通信·拥塞控制·kcc
浦信仿真大讲堂2 小时前
达索系统SIMULIA Abaqus 2026接触和约束的增强新功能介绍
人工智能·python·算法·仿真软件·达索软件
点云侠3 小时前
PCL 生成三棱锥点云
c++·算法·最小二乘法