LeetCode 94. 二叉树的中序遍历

news2025/1/15 17:26:37

🌈🌈😄😄

欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 94. 二叉树的中序遍历,做好准备了么,那么开始吧。

🌲🌲🐴🐴

一、题目名称

LeetCode 94. 二叉树的中序遍历

二、题目要求

给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。

三、相应举例

 示例 1:


输入:root = [1,null,2,3]
输出:[1,3,2]
示例 2:

输入:root = []
输出:[]
示例 3:

输入:root = [1]
输出:[1]

四、限制要求

  • 树中节点数目在范围 [0, 100] 内
  • -100 <= Node.val <= 100

五、解决办法

递归

二叉树的中序遍历:按照访问左子树——根节点——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候我们按照同样的方式遍历,直到遍历完整棵树。因此整个遍历过程天然具有递归的性质,我们可以直接用递归函数来模拟这一过程。

递归实现时,是函数自己调用自己,一层层的嵌套下去,操作系统/虚拟机自动帮我们用 栈 来保存了每个调用的函数​​​​​​​。

六、代码实现

class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<Integer>();
        inorder(root, res);
        return res;
    }

    public void inorder(TreeNode root, List<Integer> res) {
        if (root == null) {
            return;
        }
        inorder(root.left, res);
        res.add(root.val);
        inorder(root.right, res);
    }
}

复杂度分析

时间复杂度:O(n),其中 nn 为二叉树节点的个数。二叉树的遍历中每个节点会被访问一次且只会被访问一次。

空间复杂度:O(n)。空间复杂度取决于递归的栈深度,而栈深度在二叉树为一条链的情况下会达到 O(n)的级别。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/156154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mybatis获取参数

Mybatis获取参数 配置模板 mybatis获取参数值的两种方式 1、&{}&#xff1a; 字符串拼接 2、#{}&#xff1a; 占位符赋值 MyBatis获取参数值的各种情况&#xff1a; MyBatis获取参数值的各种情况&#xff1a; 1、mapper接口方法的参数为单个的字面量类型 可以通过&#xf…

双系统下 linux挂载window磁盘

如果想让linux访问window分区磁盘&#xff0c;呈只读状态&#xff0c;解决办法是bios取消window快速开机。永久挂载windows磁盘 https://blog.csdn.net/yuehenmiss/article/details/124737456 # 创建挂载目录 sudo mkdir /window # 挂载分区 sudo mount /dev/sda1 /window # 查…

产品经理必懂知识之计算机基础知识

作为产品经理&#xff0c;非常有必要了解一下计算机的发展历史&#xff0c;今天带大家一起&#xff0c;大概地了解一下计算机的基础知识&#xff0c;希望能够帮助到大家&#xff0c;框架如下&#xff1a; 一、计算机发展史 1.1计算机的诞生 1946年第一台电子计算机问世美国宾…

YOLOv8训练自己的数据集(超详细)

一、准备深度学习环境 本人的笔记本电脑系统是&#xff1a;Windows10 YOLO系列最新版本的YOLOv8已经发布了&#xff0c;详细介绍可以参考我前面写的博客&#xff0c;目前ultralytics已经发布了部分代码以及说明&#xff0c;可以在github上下载YOLOv8代码&#xff0c;代码文件夹…

一种车辆纵向控制切换算法设计思路

传统及主流的纵向控制切换算法&#xff1a; 例如《某避障控制策略研究》硕士论文&#xff1a; 在CarSim中设定节气门开度及制动踏板力为0&#xff0c;测得不同车速工况下车辆自然滑行的减速度。为了避免在控制过程中车辆驱动与制动切换的过于频繁&#xff0c;在其两侧设置了宽…

VUE_vue-cli 卸载不掉的问题解决

nodejs版本最好在v17以下&#xff0c;推荐使用v16.19.0 问题 由于项目需要旧版的 vue-cli &#xff0c;所以需要事先卸载新版本&#xff1b; 运行命令全局卸载&#xff1a; yarn global remove vue/cli// 查看当前版本确定是否卸载 vue --version结果还是旧版本&#xff0c;…

使用ResNet34实现CIFAR100数据集的训练

如果对你有用的话&#xff0c;希望能够点赞支持一下&#xff0c;这样我就能有更多的动力更新更多的学习笔记了。&#x1f604;&#x1f604; 使用ResNet进行CIFAR-10数据集进行测试&#xff0c;这里使用的是将CIFAR-10数据集的分辨率扩大到32X32&#xff0c;因为算力相关的…

5.8.1、TCP的连接建立

TCP 是面向连接的协议&#xff0c;它基于运输连接来传送 TCP 报文段。 TCP 运输连接的建立和释放是每一次面向连接的通信中必不可少的过程。 TCP 运输连接有以下三个阶段 建立 TCP 连接&#xff1a;通过 “三报文握手” 建立 TCP 连接数据传送&#xff1a;也就是基于已建立的…

【PostgreSQL】手把手教学PostgreSQL

目录 1、PostgreSQL介绍 2、在ubuntu上通过命令安装 3、进入postgres用户 4、查看所有数据库 5、创建数据库 6、删除数据库 7、查看版本号&#xff08;注意&#xff1a;在sudo su - postgres下&#xff09; 8、远程连接 1、PostgreSQL介绍 官网&#xff1a;PostgreSQL: T…

SiC碳化硅功率器件测试哪些方面?碳化硅功率器件测试系统NSAT-2000

SiC碳化硅功率半导体器件具有耐压高、热稳定好、开关损耗低、功率密度高等特点&#xff0c;被广泛应用在电动汽车、风能发电、光伏发电等新能源领域。 近年来&#xff0c;全球半导体功率器件的制造环节以较快速度向我国转移。目前,我国已经成为全球最重要的半导体功率器件封测基…

wndows平台VS2019+OpenCV+cmake简单应用

wndows平台VS2019OpenCVcmake简单应用1.下载并解压文件2.结合人脸检测demo在vs中进行配置2.1 人脸检测代码2.2 在VS项目—属性中配置2.2.1 配置包含目录2.2.2 配置库目录2.2.3 配置链接器附加依赖项2.3 通过cmake进行配置与编译2.3.1 添加CMakeLists.txt文件2.3.2 cmake命令行执…

普中学习板准备工作

目录 1.1 ch341驱动安装 1. 目标板上的usb-串口模块插上 2. 按下目标板上的上电按钮 3. 打开ch341驱动程序&#xff0c;点击安装&#xff0c;等待结果 1.2 使用自动下载软件 1. 使用普中的自动下载软件 2. 串口号处选择安装好的驱动端口 3. 打开文件选择编译好的程序 …

2023 RealWorldCTF “Ferris proxy”逆向题分析(不算wp)

这题第二天才开始做&#xff0c;结果到比赛后4个小时才做出来&#xff0c;真是老了&#xff0c;不过也算有收获&#xff0c;对rust的程序更熟悉了~ client编译后的代码有41M&#xff0c;WTF 主函数入口 根据main函数找到两个入口 第二个函数很明显是主入口&#xff0c;不过…

数字图像相关系列笔记:DuoDIC

文章目录概述Algorithms and workflowStep 1: Stereo camera calibrationStep 2: Image cross-correlation (2D-DIC)Step 3: 3D reconstructionStep 4: Post processingValidation using a rigid body motion (RBM) testLimitations遗留问题参考资料附录概述 3D-DIC is a non-…

【C++、数据结构】AVL树 模拟实现

文章目录&#x1f4d6; 前言1. AVL树的概念1.1 二叉搜索树的缺点&#xff1a;1.2 AVL树的引入&#xff1a;1.2 AVL树的性质&#xff1a;2. AVL树的模拟实现2.1 AVL树结点的定义&#xff1a;2.2 AVL树的插入&#xff1a;&#xff08;重点&#xff09;2.2.1 插入结点后平衡因子的…

【前端】Vue项目:旅游App-(14)home+search:搜索按钮及其路由跳转、分组数据的网络请求request、数据存储store和动态显示

文章目录目标过程与代码搜索部分&#xff1a;搜索按钮点击搜索按钮路由跳转并传数据search页面隐藏TabBar分类部分&#xff1a;数据请求&#xff1a;request、store显示数据分类的样式总代码修改或添加的文件common.cssrouter的index.jsservice的home.jsstore的home.jshome-cat…

Windows系统下 pyinstaller将python文件打包成可执行文件exe的方法

使用环境为Windows10系统&#xff08;64&#xff09;&#xff0c;Python版本为3.11.1。 1.将pip加入环境变量 &#xff08;1&#xff09;右击此电脑点击"属性"&#xff0c;点击高级系统设置&#xff0c; &#xff08;2&#xff09;选择最下面的环境变量&#xff1b…

C++之继承

文章目录一、继承的基本理解1.继承的概念2.继承的定义二、基类和派生类对象赋值转换三、继承中的作用域四、派生类的默认成员函数五、继承与友元六、继承与静态成员七、复杂的菱形继承及菱形虚拟继承1.继承关系2.菱形继承存在数据冗余和二义性的问题3.虚拟继承可以解决菱形继承…

前端优化原理篇(生命周期)

1&#xff0c; 性能评估模型 对于前端的性能的评判 主要是以下四个方面&#xff1a; 2&#xff0c;性能测量工具 1&#xff0c;浏览器的performarce功能 指路可看链接 2&#xff0c;lighthouse工具 3&#xff0c;生命周期 网站 页面的整个生命周期&#xff0c;通俗的讲&a…

移动端App 页面秒开优化总结

前言 App优化&#xff0c;是一个工作、面试或KPI都绕不开的话题&#xff0c;如何让用户使用流畅呢&#xff1f;今天谨以此篇文章总结一下过去两个月我在工作中的优化事项到底有那些&#xff0c;优化方面还算小白&#xff0c;有不对的地方还望指出海涵, 该文章主要通过讲述Nati…