人生如一场修行,得意时“一日看尽长安花”,艰难时“倒新停浊酒杯”。但生命的跋涉不能回头,哪怕“畏途巉岩不可攀”,也要“会当凌绝顶”。哪怕“无人会,登临意”,也要“猛志固常在”。从经典中汲取“九万里风鹏正举”的力量,历练“也无风雨也无晴”的豁然,“待阳日”,我们“还来就花”。

Leetcode原题

94.二叉树中序遍历

思路

首先说一下二叉树。什么是二叉树呢,二叉树就是每个节点最多只有2个的有序树。通常子树的根被称作“左子树”和“右子树”。”

中序遍历是二叉树遍历的一种,也叫做中根遍历、中序周游。在二叉树中,中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。

了解了这个我们接下来实现就很简单

方法一 递归实现

class Solution {public List<Integer> inorderTraversal(TreeNode root) {//中序遍历: 左中右List<Integer> res =new ArrayList<>();accessTree(root, res);return res;}public void accessTree(TreeNode root, List<Integer> res){if(root == null){return;}//递归左中右accessTree(root.left,res);res.add(root.val);accessTree(root.right,res);}
}

递归实现通常很简单,但是会让你忽律很多的细节。

方法二 迭代

方法一的递归函数我们也可以用迭代的方式实现,两种方式是等价的,区别在于递归的时候隐式地维护了一个栈,而我们在迭代的时候需要显式地将这个栈模拟出来,其他都相同,具体实现可以看下面的代码。

class Solution {public List<Integer> inorderTraversal(TreeNode root) {//中序遍历: 左中右List<Integer> res =new ArrayList<>();Deque<TreeNode> statck =new LinkedList<>();while(root!=null || !statck.isEmpty()){while(root!= null){//先添加跟节点statck.push(root);//然后左节点入栈root= root.left;}//左节点遍历完,出栈,并添加入链表root = statck.pop();res.add(root.val);//遍历右节点root = root.right;}return res;}
}

有兴趣的老爷,还可以关注我的公众号【一起收破烂】,回复【006】获取 最新java面试资料以及简历模型120套哦~

算法打卡Day16_leetcode _94. 二叉树的中序遍历相关推荐

  1. 二叉树的中序遍历_94. 二叉树的中序遍历 - 中等

    回学校了,快乐的论文时光又要开始了!今天又是没有灵感的一天. 题目描述: 给定一个二叉树,返回它的中序 遍历. 测试用例: 输入: [1,null,2,3]12/3 输出: [1,3,2] 进阶: 递 ...

  2. 【数据结构与算法】之深入解析“二叉树的中序遍历”的求解思路与算法示例

    一.题目要求 给你二叉树的根节点 root ,返回它节点值的中序遍历. 示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入࿱

  3. 二叉树的中序遍历非递归方法(算法导论第三版12.1-3)

    二叉树的中序遍历非递归方法(算法导论第三版12.1-3) 1⃣️用栈实现 template<typename T> void inorder_tree_walk_non_recursion ...

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

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

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

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

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

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

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

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

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

    题目描述: 给定一个二叉树的根节点 root ,返回它的 中序 遍历. 输入:root = [1,null,2,3] 输出:[1,3,2] 思路分析: 用递归或是迭代算法来解决. 递归: 首先我们需要 ...

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

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

最新文章

  1. Oracle 哈希连接原理
  2. 引入 ServletContextListener @Autowired null 解决办法
  3. 初学Java Web(2)——搭建Java Web开发环境
  4. 小米笔记本充电实测追求速度牺牲兼容性小米笔记本充电驱动_是海尔?也是雷神?不足1千克MixBook Air超轻薄笔记本...
  5. js实现向上滚动效果
  6. Java中getResource()的用法
  7. 三菱fx3u中文手册_3个月高效掌握三菱PLC!四个阶段经验大总结~
  8. 如何检查PHP数组是关联数组还是顺序数组?
  9. 新手干货:Vue - 事件修饰符
  10. Windows2000系统下载安装,怀念一下
  11. python 发送邮件实现 抄送,密送
  12. 客户管理系统之数据库设计
  13. mysql archer,archer安装及使用
  14. 用Word转换向导批量转换Word文档(转)
  15. 幽默感也有套路:可用数学模型量化
  16. 微软展示Windows 8新LOGO:倾斜纯蓝色窗口
  17. 在线通过dd命令备份分区
  18. 22、R329刷机受阻和测试仿真环境demo
  19. 硬件描述语言Verilog学习(三)
  20. cae计算机仿真分析技术,仿真分析工作在研发中的定位

热门文章

  1. 【19调剂】中国科学院上海天文台接收报考硕士研究生调剂生的通知
  2. 无乐不作android手机版,酷狗音乐9.4.4版本
  3. 遇到bug的解决办法,测试再也不背锅了
  4. Android唤醒锁作用,Android深度睡眠和唤醒锁
  5. leveldb:Arena浅析
  6. CorelDRAW X3中文版服装创意设计视频教程
  7. 51单片机APP GSM短信老人跌倒定位温度异常报警检测GPS地图
  8. 连作业都不会抄!盘点那些年被淘宝直播带沟里的直播平台
  9. 5G之花含苞待放 高通支持生态系统有序前行
  10. java 地图api接口_Java调用百度地图API