文章目录

  • 1. 题目信息
  • 2. 解题
    • 2.1 递归
    • 2.2 循环,必须掌握

1. 题目信息

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

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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

2.1 递归

class Solution {public:vector<int> inorderTraversal(TreeNode* root) {vector<int> ans;inorder(root, ans);return ans;}void inorder(TreeNode* root, vector<int> &ans){if(root == NULL)return;inorder(root->left, ans);ans.push_back(root->val);inorder(root->right, ans);}
};

2.2 循环,必须掌握


左根右

class Solution {public:vector<int> inorderTraversal(TreeNode* root) {vector<int> ans;stack<TreeNode*> stk;while(root || !stk.empty()){while(root){stk.push(root);root = root->left;}root = stk.top();ans.push_back(root->val);stk.pop();root = root->right;}return ans;}
};

LeetCode 94. 二叉树的中序遍历(中序遍历)相关推荐

  1. leetcode| 94. 二叉树的中序遍历

    ##给定一个二叉树,返回它的中序遍历. 示例: 输入: [1,null,2,3] 1 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 栈. 思路 时间复杂度O( ...

  2. leetcode - 94. 二叉树的中序遍历

    给定一个二叉树,返回它的中序遍历.中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历.中序周游.在二叉树中,中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树. 示例: 进阶: 递归算法很简单, ...

  3. LeetCode 94. 二叉树的中序遍历(递归)(迭代)(颜色标记法)

    题目描述 给定一个二叉树,返回它的后序遍历 思路 详见链接 代码 递归 #class TreeNode: # def __init__(self,x): # self.val = x # self.l ...

  4. Leetcode 94.二叉树的中序遍历 (每日一题 20210712)

    给定一个二叉树的根节点 root ,返回它的 中序 遍历.示例 1:输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2:输入:root = [] 输出:[] 示例 3:输入: ...

  5. 力扣(Leetcode)-94. 二叉树的中序遍历

    描述 给定一个二叉树的根节点 root ,返回它的 中序 遍历. 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 ...

  6. [leetcode]94.二叉树的中序遍历

    给定一个二叉树的根节点 root ,返回它的 中序 遍历. 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: ...

  7. Leetcode 94. 二叉树的中序遍历 解题思路及C++实现

    解题思路: 中序遍历的顺序是:左根右.所以需要使用一个栈来存储根节点(每一次push操作时,都相当于把该节点当成根节点了,然后再向其左节点探索). 程序中的大循环是:!s.empty() || roo ...

  8. LeetCode 94. Binary Tree Inorder Traversal--二叉树中序遍历--递归,迭代--C++,Python解法

    题目地址:Binary Tree Inorder Traversal - LeetCode Given a binary tree, return the inorder traversal of i ...

  9. LeetCode 297. 二叉树的序列化与反序列化(前序遍历层序遍历)

    文章目录 1. 题目 2. 解题 2.1 前序遍历 2.2 层序遍历 1. 题目 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过 ...

最新文章

  1. selector与layer-list 单边框效果
  2. cesium面积计算_cesium-长度测量和面积测量
  3. html的 button点击事件无效,InfoWindow里面加button,监听button点击事件无效 求解啊...
  4. 阿里云NAS备份服务
  5. 提高千倍效率的35个编码小技巧,老司机带你飞!
  6. (原创) cocos2d-x 3.0+ lua 学习和工作(4) : 公共函数(8): 生成只读table
  7. OpenCore黑苹果引导配置说明-基于OpenCore-0.7.0-06-08正式版
  8. CISP 考试资源分享
  9. 《PWM整流器及其控制》读书笔记—第三章—电压型PWM整流器
  10. Hive提取身份证号中年龄和性别
  11. c语言常用延时程序,新手常用单片机延时程序
  12. 2020 IEEE 冯诺依曼奖得主:Michael Jordan --机器学习领域泰斗级人物
  13. Linux下安装google浏览器
  14. PowerPC的嵌入式Linux培训大纲
  15. 用户不在 sudoers 文件中此事将被报告
  16. 机械臂操作运动传送带上的物体
  17. 布伦特原油期货为什么比纽约原油贵那么多
  18. linux 后台运行matlab 程序
  19. 快速实现WIFI TCP通信详解
  20. 12306网上订火车票很快呀

热门文章

  1. 字符串替换:用参数字符数组成员替换字符串中的占位符(面试题)
  2. Android查看真机布局,android-外部存储
  3. 源码安装mysql数据库_Linux下源码安装mysql数据库
  4. [转]你每天90%的注意力被浪费了
  5. POJ - 2385 Apple Catching (dp)
  6. Linux 系统版本信息
  7. 201521123044 《Java程序设计》第01周学习总结
  8. worth,worthy,worthwhile的区别(一)
  9. gPodder 3.4 发布,播客接收器
  10. 开始学习ZendFramework框架了