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;
    }
}
相关推荐
持续学习的程序员+117 小时前
部分离线强化学习相关的算法总结(td3+bc/conrft)
算法
Rui_Freely17 小时前
Vins-Fusion之 SFM 滑窗内相机位姿及特征点3D估计(十三)
人工智能·算法·计算机视觉
李泽辉_17 小时前
深度学习算法学习(六):深度学习-处理文本:神经网络处理文本、Embedding层
深度学习·学习·算法
Codeking__17 小时前
Redis的value类型及编码方式介绍——hash
redis·算法·哈希算法
星火开发设计18 小时前
C++ multimap 全面解析与实战指南
java·开发语言·数据结构·c++·学习·知识
u01040583618 小时前
企业微信通讯录同步服务的增量更新与冲突解决算法
算法·企业微信
码农水水18 小时前
阿里Java面试被问:RocketMQ的消息轨迹追踪实现
java·开发语言·windows·算法·面试·rocketmq·java-rocketmq
智驱力人工智能18 小时前
矿场轨道异物AI监测系统 构建矿山运输安全的智能感知防线 轨道异物检测 基于YOLO的轨道异物识别算法 地铁隧道轨道异物实时预警技术
人工智能·opencv·算法·安全·yolo·边缘计算
橘颂TA18 小时前
【剑斩OFFER】算法的暴力美学——leetcode 429 题:N 叉树的层序遍历
算法
"YOUDIG"18 小时前
信稿笺纸设计工具:传统排版美学与数字化设计的高效融合
科技·考研·算法·面试·职场和发展·高考