中序遍历(左子树->根节点->右子树)
方法一:
递归

    public List<Integer> inorderTraversal(TreeNode root) {List<Integer> ans = new LinkedList<>();traversal(root, ans);return ans;}private void traversal(TreeNode root, List<Integer> ans) {if (root != null) {if (root.left != null)traversal(root.left, ans);ans.add(root.val);if (root.right != null)traversal(root.right, ans);}}


方法二:
循环迭代,这里使用栈来模拟递归过程。
思路:
1.创建一个空栈s
2.用 cur来跟踪根结点,cur初始化为null.
3 如果cur不为空,则将它存进栈s中,并且,将cur沿着左子树下移,直到cur为空。
4.如果栈不为空,令cur指向栈顶元素的右子树,将栈顶元素弹出来,并且将这个弹出来的元素 存进链表。重复第三步
5.当栈为空,并且cur没有指向时,我们迭代结束

    public List<Integer> inorderTraversal(TreeNode root) {List<Integer> ans = new LinkedList<>();Stack<TreeNode> s = new Stack<>();TreeNode cur = root;while (cur != null || !s.isEmpty()) {while (cur != null) {s.push(cur);cur = cur.left;}if (!s.isEmpty()) {cur = s.peek().right;ans.add(s.pop().val);}}return ans;}

LeetCode刻意练习22--二叉树的中序遍历相关推荐

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

    给定一个二叉树,返回它的中序 遍历. 示例: 输入: [1,null,2,3]    1     \      2     /    3 输出: [1,3,2] python写中序遍历其实和c++很像 ...

  2. Leetcode题库 94.二叉树的中序遍历(递归 C实现)

    文章目录 解析 代码 解析 中序遍历:先左再中后右 Func函数,接收一个节点,节点非空,则先遍历其左子树,再存入自身val值,最后遍历右子树 ret数组存储每个非空节点的val值 pos为下一个存入 ...

  3. leetcode刷题:二叉树的中序遍历

    题目: 分析: 代码如下: class Solution { public:vector<int> inorderTraversal(TreeNode* root) {stack<T ...

  4. 《LeetCode力扣练习》第94题 二叉树的中序遍历 Java

    <LeetCode力扣练习>第94题 二叉树的中序遍历 Java 一.资源 题目: 给定一个二叉树的根节点 root ,返回它的 中序 遍历. 示例 1: 输入:root = [1,nul ...

  5. LeetCode 92反转链表Ⅱ93复制ip地址94二叉树的中序遍历

    微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...

  6. Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历

    Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...

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

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

  8. 二叉树的中序遍历 [递归 迭代]

    中序遍历的递归 & 迭代 前言 一.二叉树的中序遍历 二.递归 & 迭代 1.递归版 2.迭代(断左子树版) 3.迭代(root迭代版) 4.mirror(O(1)空间版) 总结 参考 ...

  9. 每日一题——二叉树的中序遍历

    菜鸡每日一题系列打卡94天 每天一道算法题目 小伙伴们一起留言打卡 坚持就是胜利,我们一起努力! 题目描述(引自LeetCode) 给定一个二叉树,返回它的中序遍历. 示例: 输入: [1,null, ...

最新文章

  1. 将新更新从原始GitHub存储库中提取到派生的GitHub存储库中
  2. Module Zero之用户管理
  3. Linux /etc/profile文件详解
  4. vector 查找_同样是Excel中的查找函数,这个函数却比VLOOKUP功能强100倍
  5. 腾讯万亿级Elasticsearch应用及优化解密
  6. [蓝桥杯2018决赛]换零钞-枚举
  7. cmd中加载java源文件_如何在cmd中编译和运行java源文件
  8. stm32c语言写数码管定时器,使用TIM1产生1秒定时控制数码管显示0-9(STM32_10)
  9. vSAN其实很简单-vSAN 原厂支持的包含范围
  10. 如何在多个SQL Server上运行备份
  11. duilib入门简明教程 -- 前言(1)
  12. CSS3最常用选择器总结笔记
  13. Matlab计算机视觉/图像处理工具箱推荐
  14. 基于JavaWeb的C2C网上购物平台系统设计
  15. 人在囧途之tar命令
  16. 【WebLogic】解决opatch执行报错“Exception occured: fuser could not be located”
  17. python鼠标点击事件
  18. 做自媒体视频变现的三大要素!
  19. 【PYNQ】PYNQ的视频资料介绍
  20. 移动群智感知应用学习

热门文章

  1. 笔记本win10更新无线服务器,win10系统笔记本无线网络找不到的解决方法
  2. scp自动输入密码配置
  3. Design System Application - Chapter 3 字号 Font Size
  4. 以前写的一首现代诗,无题
  5. AVFoundation Programming Guide(官方文档翻译2)Using Assets - 使用Assets
  6. 打开qq时出现电脑屏幕闪烁
  7. 电脑QQ表情收藏的测试用例
  8. 介绍一下关于goodnotes,notability的手帐笔记素材的网站,含有A4大量的打印纸,电子手帐,贴图,便签,字体
  9. android 9.0定时开机的实现
  10. 微信小程序自定义的导航栏