108.将有序数组转换为二叉搜索树

思路

将有序数组转换为平衡二叉搜索树。递归方法,每次选取数组中间元素作为根节点,左侧子数组构建左子树,右侧子数组构建右子树。不断二分数组确保树的高度平衡,时间复杂度为O(n)。

代码

cpp 复制代码
class Solution {
private:
    TreeNode* traversal(vector<int>& nums,int l, int r) {
        if(l>r) return nullptr;
        int m=l+((r-l)/2);
        TreeNode* rr=new TreeNode(nums[m]);
        rr->left=traversal(nums,l,m-1);
        rr->right=traversal(nums,m+1,r);
        return rr;
    }
public:
    TreeNode* sortedArrayToBST(vector<int>& nums) {
        TreeNode* r=traversal(nums,0,nums.size()-1);
        return r;
    }
相关推荐
不知名的老吴2 分钟前
机器学习评价之基础指标
人工智能·算法·机器学习
Felven2 分钟前
D. Divisible Pairs
算法
源代码杀手3 分钟前
基于ROS2+Gazebo+RIVE的40项计算机视觉前沿机器人项目(含视觉算法原理与源码获取方式)
算法·计算机视觉·机器人
MrZhao4004 分钟前
大模型量化到底在做什么:从浮点数表示到 Qwen FP8 实践
算法
JieE2125 分钟前
LeetCode35. 搜索插入位置:二分查找的基础与细节
javascript·算法
8Qi811 分钟前
LeetCode 188 & 123:股票买卖问题(限制交易次数)—— 联合题解
算法·leetcode·职场和发展·动态规划
KaMeidebaby15 分钟前
卡梅德生物技术快报|细胞周期检测抗原流式分析:参数调试、软件拟合与问题排查
网络·人工智能·python·网络协议·tcp/ip·算法·机器学习
一只齐刘海的猫19 分钟前
【Leetcode】三数之和
数据结构·算法·leetcode
lightqjx20 分钟前
【算法】数据结构_扩展域并查集
数据结构·算法·并查集·扩展域并查集
San813_LDD22 分钟前
[量化]《多线程数据同步精讲:std::mutex 的底层原理与最佳实践》
c语言·数据结构