当前位置: 首页 > news >正文

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

题意

将升序排序的数组,转换为一棵平衡二叉搜索树。

思路

我没啥思路。看题解写的这题。

代码

class Solution {
public:
    TreeNode* sortedArrayToBST(vector<int>& nums) {
        return helper ( nums, 0, nums.size() - 1 );
    }

    TreeNode* helper( vector<int> &nums, int left, int right ) {
        if ( left > right ) {
            return nullptr;
        }

        int mid = ( left + right ) / 2;
        TreeNode* root = new TreeNode( nums[mid] );
        root -> left = helper( nums, left, mid - 1 );
        root -> right = helper( nums, mid + 1, right );

        return root;
    }
};

分析

平衡的二叉搜索树就是尽可能让 bst 低一些。给一个向量,并且是按照升序排列的,二叉搜索树的中序遍历也是按照升序排列的。所以可以递归写一遍二叉树的中序遍历。选择根节点的时候选择中间靠左的节点,整数除法可以保证每次选择中间靠左的节点。bst 的查找类似于二分查找,递归做一遍就可以构建出来了。

最后

我一定可以把简单和中等算法题写出来!!

相关文章:

  • HQChart使用教程46-K线图如何对接第3方数据42-DRAWTEXT_LINE数据结构
  • 20届智能车赛规则
  • python环境出现出现 pip: command not found 错误
  • 什么是张量计算
  • 动态规划:从暴力递归到多维优化的算法进化论(C++实现)
  • C++ 关系运算符重载和算术运算符重载的例子,运算符重载必须以operator开头
  • 【golang学习之旅】使用VScode安装配置Go开发环境
  • Linux文件系统知识
  • (undone) MIT6.824 Lecture 01 - Introduction
  • 【极速版 -- 大模型入门到进阶】快速了解大型语言模型
  • Modern C++面试题及参考答案
  • Smith3.0 4.0的阻抗匹配操作方法
  • Apache Doris学习
  • 让 MGR 不从 Primary 的节点克隆数据?
  • 字节DAPO算法:改进DeepSeek的GRPO算法-解锁大规模LLM强化学习的新篇章(代码实现)
  • NLP高频面试题(十一)——RLHF的流程有哪些
  • odata 搜索帮助
  • CS2 demo manager 安装
  • git 合并多次提交 commit
  • Problem: 73. 矩阵置零
  • 年在沪纳税350亿人民币,这些全球头部企业表示“对上海承诺不会变”
  • 湃书单|澎湃新闻编辑们在读的14本书:后工作时代
  • 北方产粮大省遭遇气象干旱,夏粮用水如何解决?
  • 今年前4个月上海对拉美国家进出口总值增长2%
  • 媒体:“西北大学副校长范代娣成陕西首富”系乌龙,但她的人生如同开挂
  • 福建厦门市副市长、市公安局局长陈育煌出任吉林省公安厅厅长