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;
    }
}
相关推荐
熬夜有啥好12 小时前
数据结构——排序与查找
数据结构
YuTaoShao12 小时前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法二)排序 + 二分查找
数据结构·算法·leetcode
wangluoqi12 小时前
26.2.6练习总结
数据结构·算法
Yvonne爱编码12 小时前
链表高频 6 题精讲 | 从入门到熟练掌握链表操作
java·数据结构·链表
Q741_14712 小时前
C++ 优先级队列 大小堆 模拟 力扣 703. 数据流中的第 K 大元素 每日一题
c++·算法·leetcode·优先级队列·
木井巳13 小时前
【递归算法】二叉搜索树中第K小的元素
java·算法·leetcode·深度优先·剪枝
铉铉这波能秀13 小时前
LeetCode Hot100 中 enumerate 函数的妙用(2026.2月版)
数据结构·python·算法·leetcode·职场和发展·开发
墨有66613 小时前
哈希表从入门到实现,一篇吃透!
数据结构·算法·哈希算法
We་ct13 小时前
LeetCode 228. 汇总区间:解题思路+代码详解
前端·算法·leetcode·typescript
AIpanda88813 小时前
如何借助AI销冠系统提升数字员工在销售中的成效?
算法