94. 二叉树的中序遍历

Leetcode——94,二叉树中序遍历 /** * \* Created: liuhuichao * \* Date: 2019/7/16 * \* Time: 31:57 PM * \* Description:二叉树的中序遍历 : 中序遍历是先遍历左子树,然后访问根节点,然后遍历右子树 * \ * 给定一个二叉树,返回它的中序 遍历。 * <p> * 示例: * <p> * 输入... 阅读详情

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

示例:

输入: [1,null,2,3]
   1
    \
     2
    /
   3

输出: [1,3,2]

进阶: 递归算法很简单,你可以通过迭代算法完成吗?

思路:
1.递归中序遍历
2.迭代中序遍历
3.莫里斯遍历

题解:
1.

 //递归中序遍历
class Solution {
public:
    vector<int> v;
    void traversal(TreeNode* root) {
        if (root!=NULL) {
            traversal(root->left);
            v.push_back(root->val);
            traversal(root->right);
        }
    }
    vector<int> inorderTraversal(TreeNode* root) {
       traversal(root);
       return v;
    }
};
 //利用栈,迭代中序遍历
class Solution {
public:
    vector<int> v;
    stack<TreeNode*> s;
    int i = 0;
    vector<int> inorderTraversal(TreeNode* root) {
        if (root==NULL)
            return v;
        s.push(root);
        root = root->left;
        while (!s.empty() || root!=NULL) {
            while (root!=NULL) {
                s.push(root);
                root = root->left;
            }
            root = s.top();
            s.pop();
            v.push_back(root->val);
            root = root->right;
        }
       return v;
    }
};

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal

LeetCode 第94题:二叉树的中序遍历 通过递归法、迭代法和莫里斯遍历法,我们成功地解决了LeetCode第94题——二叉树的中序遍历。递归法:简洁直观,适用于理解树的基本结构和遍历方法。迭代法:利用栈模拟递归,适用于防止栈溢出和理解非递归遍历。莫里斯遍历法:不使用额外空间,适用于对空间复杂度有严格要求的场景。希望这篇博客能够帮助你全面理解二叉树的中序遍历,并应用到其他树相关的问题中。如果你有任何问题或建议,欢迎在评论区留言,我们一起讨论进步。 阅读详情

相关推荐

构建自己的哨兵数据集(以sentinel-1为例,使用SNAP软件)

通过欧洲航天官网获取哨兵数据的产品,通过SNAP软件进一步得到SAR图像(以导出图片为例)

xiaoxTai的博客 6182

LeetCode第94题_二叉树的中序遍历

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

qq_40263592的博客 1307

vivado 编译ADI AD9361 TCL脚本生成hdl工程

(4)输入"source ../../scripts/adi_make.tcl"命令(仅双引号内部命令,不包含双引号),个人理解:该命令用来加载当前所需要编译工程所需要各功能模块的信息,因为每个工程需要不同的功能模块,比如有的需要gpio模块,有的不需要gpio模块,这些模块上前面路径的library也同样以TCL脚本形式存在,当有需要时才进行编译,怎么知道当前工程需要什么模块呢就是通过"source ../../scripts/adi_make.tcl"(仅双引号内部命令,不包含双引号)命令实现。

weixin_40586423的博客 808

LeetCode 94二叉树的中序遍历

LeetCode 94二叉树的中序遍历 题目简述:给定一个二叉树,返回它的中序遍历。 输入:[1,null,2,3] 输出: [1,3,2] 思路:递归 class Solution { public: vector<int> res; void dfs(TreeNode *root) { if(!root) return; dfs(root->left); res.push_back(root->va

XBlog 237

简化神经元模型6 -- Hindmarsh-Rose Model

简化神经元模型 6 Hindmarsh-Rose Model

weixin_73557167的博客 1427

翻倍密码系统主图指标-行情买卖以及持股-翻倍密码买点-获利了结,通达信炒股软件指标公式

华森制药,上图案例走势,低位出现“开始潜伏”信号,进场红色K线持股待涨,进入“翻倍密码买点”,开启紫色K线的持续上涨,目前也达到了翻倍行情,还没出现“获利了结”的出场信号。这套操盘系统,即便出现信号没走出翻倍行情,也都是可以全身而退,获利出局,或者微微止损出场,并不代表每一个波段都能翻倍,但是走翻倍行情,你按照信号参与或持仓是不会错过的。用这个操盘系统操作,你也不需要天天的盘中看盘,不需要担心盘中的震荡,只要趋势不变,哪怕是偶尔出现跌停,也不影响行情的继续上涨,这都是上涨途中的正常调整。

weixin_69760830的博客 3680

LeetCode-94. 二叉树的中序遍历

LeetCode-94. 二叉树的中序遍历 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 思路 分为递归版本和非递归版本。 递归 /** * Definition for a binary tree node. * public class TreeNode { * ...

Galip的博客 324

Open3D (C++) 计算点云坐标最值及其索引

使用C++版本的Open3D计算点云最值点及其对应的下标索引

点云侠的博客 728

LeetCode94-二叉树的中序遍历

LeetCode94-二叉树的中序遍历 最近全国疫情严重,待在家里没事干,马上又要准备春招了,最近刷刷题,记录一下!再说一句,武汉加油,大家出门记得戴口罩! 1、题目 给定一个二叉树,返回它的中序遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 2、思路 基于递归...

sk18192449347的博客 306

Rockchip eMMC寿命监控:SMART信息读取与预防性维护

擦写计数坏块数量温度使用时间。

小灰灰的博客 762

【企业智能体开发】优化模型成本、延迟与失败降级

小林的培训快开始时,服务台花很久“思考最优回答”,体验并不会更好。反过来,为了省钱而始终选最轻的模型,若连房间、连接方式和任务状态都识别不稳,后续错误检索和重复建单会造成更大代价。企业 Agent 的优化对象不是单次模型调用价格,而是任务在可接受时间内、安全地推进到正确结果的总成本。

Mr数据杨 893

LeetCode 94. 二叉树的中序遍历

题目链接:LeetCode 94. 二叉树的中序遍历 给定一个二叉树,返回它的中序遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 解题思路: 递归的方式,进行中序遍历 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode...

error311的博客 139

史上最详细的sqlmap使用教程

sqlmapsqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等Sqlmap采用了以下5种独特的SQL注入技术基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入。

大河之犬的博客 5万+

LeetCode 94:二叉树的中序遍历

LeetCode 94:二叉树的中序遍历 题目描述解题思路代码实现总结 题目描述 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 2 / 3 输出: [1,3,2] 解题思路 二叉树的中序遍历:left -->root–>right (左跟右),借助栈结构,我们将每个按顺序遍历的节点,添加到arraylist当中。从二叉树的根节点开始,先将根节点...

香农三定律的博客 174

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

leetcode 94——二叉树的中序遍历

leetcode 94——二叉树的中序遍历 题目描述: 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal 著作权...

weixin_44795839的博客 225

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

力扣94题:二叉树的中序遍历

方法时间复杂度空间复杂度特点递归OnO(n)OnOhO(h)Oh简单易实现,但依赖递归栈。迭代(栈)OnO(n)OnOhO(h)Oh显式使用栈,适合较大的二叉树。Morris 遍历OnO(n)OnO1O(1)O1无额外空间需求,但实现较复杂。不同方法适合不同场景,推荐优先使用递归和迭代方法,Morris 遍历适合对空间要求极高的情况。

weixin_48941116的博客 1097

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LeetCode 94.二叉树的中序遍历

LeetCode 94.二叉树的中序遍历 一、题目详情 原题链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 示例1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入:root = [1,2] 输出:[2,1] 示

jrrhjww的博客 70

LeetCode94. 二叉树的中序遍历

LeetCode94. 二叉树的中序遍历 给定一个二叉树的根节点root,返回它的中序遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 提示: 树中节点数目在范围[0, 100]内-100 <= Node.val <= 100 树的中序遍历,递归: 1. 若根节点为空,直接返回 2. 若...

u011485472的博客 226

【小白爬Leetcode94】二叉树的中序遍历 Binary Tree Inorder Traversal

【小白爬Leetcode94】二叉树的中序遍历 Binary Tree Inorder Traversal题目方法一 递归方法二 循环 题目 Leetcode94 medium\color{#ffaa00}{medium}medium 点击进入原题链接:二叉树的中序遍历 Binary Tree Inorder Given a binary tree, return the inorder traversal of its nodes’ values. 方法一 递归 最朴素的递归,如果可以用递归这道

weixin_41604040的博客 198

LeetCode94. 二叉树的中序遍历Golang版

LeetCode94. 二叉树的中序遍历Golang版 1. 问题描述 给定一个二叉树的根节点 root ,返回它的 中序 遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入:root = [1,2] 输出:[2,1] 示例 5: 输入:root = [1,null,2] 输出:[1,2] 提示: 树中节点数目在范围 [0, 100] 内 -100 &

菜到不敢run 371

LeeCode94二叉树的中序遍历

二叉树的遍历对于理解数据结构树具有非常重要的意义,本篇文章面向初学数据结构的同学讲解二叉树的中序遍历。二叉树的中序遍历,即对于每一个节点,先访问左子树,再访问根节点,最后访问右子树。以示例一为实例,先访问根节点1的左子树,节点1的左子树为空,则访问根点1,进而访问节点1的右节点2,对于节点2先访问节点2的左子树,进而访问节点2,进而访问节点2的右节点,右节点为空,则跳过,所有节点都经遍历,那么遍历结束。愿你的代码之路越走越顺,生活充满阳光!

2301_80195716的博客 364

LeetCode —— 94. 二叉树的中序遍历

模拟中序遍历

微笑,来自内心坚不可摧的自信。 614

力扣 94.二叉树的中序遍历

给定一个二叉树的根节点。

2401_89122881的博客 369

Leetcode 94. 二叉树的中序遍历 C++

Leetcode 94. 二叉树的中序遍历 题目 给定一个二叉树,返回它的中序 遍历。 测试样例 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 题解 递归实现中序遍历 代码 vector<int> ans; void search(TreeNode* root){ if(root->left){ search(root->left); }

weixin_43750513的博客 194
上一篇: 101. 对称二叉树
下一篇: 21. 合并两个有序链表
acticn
博客等级 码龄11年 0粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值