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;
    }
相关推荐
evans在进步18 小时前
LeetCode 394:字符串解码——Java 单栈模拟与嵌套解析详解
java·python·leetcode
Nil20818 小时前
leetcode 189轮转数组
数据结构·算法·leetcode
-dzk-18 小时前
【动态规划】LC 118.杨辉三角
算法·动态规划
恣逍信点18 小时前
《凌微经》静态自悖——变化之自因
人工智能·科技·算法·机器学习·业界资讯·拓扑学·哲学
吃着火锅x唱着歌19 小时前
LeetCode 3885.设计事件管理器
算法·leetcode·职场和发展
土司大王19 小时前
LeetCode hto100——字母异位词分组
java·算法·leetcode
Eloudy19 小时前
预词力:LLM 的唯一形式化能力
人工智能·算法·agent
依然鸣19 小时前
PTA团体程序设计天梯赛L1真题讲解L1-085-088
数据结构·c++·经验分享·算法·深度优先·pat考试
听取WA声一片(无恶意)20 小时前
CSP-J/S 初赛图论完全讲义
算法·csp-s初赛·csp-j初赛
Brilliantwxx20 小时前
【算法从零到千】【51-54】逆序对(分治+递归算法)
数据结构·算法·排序算法