二叉树遍历之中序遍历

二叉树的中序遍历与深度优先搜索很类似,对于深度优先算法,我们使用栈(Stack),广度优先搜索使用队列(Queue)。二叉树的中序遍历遵循三个步骤

  1. 遍历左树
  2. 访问根节点
  3. 遍历右数

首先从根节点开始,遍历它的左树。到达节点20,同样查找它的左子树,现在到达11节点,再查找它左边的节点,因为11节点没有左子节点,故返回并打印它的值。下一步我们尝试寻找11的右子树,也是空的。所以我们返回20节点

Output:11

这时已经遍历完了20节点的左子树,所以我们打印出它的值,然后遍历它的右子树。

Output:11,20

遵循之前的规律,同样的访问29 ,32 节点。

Output:11 , 20 , 29 , 32

当20节点的右子树也遍历完了时,返回41节点。开始遍历它的右子树。重复上述的步骤。

得到最后的输出为

Output:11 , 20 , 29 , 32,41 , 50 , 65 , 72 , 91 , 99

二叉树遍历之中序遍历相关推荐

  1. 二叉树遍历之中序遍历算法(非递归、递归)入门详解

    一.引言 二叉树的遍历常见的方法有先序遍历.中序遍历.后序遍历和层次遍历等,本文给出了C语言版本的中序遍历二叉树的非递归算法和递归算法. 中序遍历的原理很简单,也就是把树根的访问放在中间.访问结点的次 ...

  2. 刻意练习:LeetCode实战 -- 二叉树的后序遍历

    背景 今天,第二期基础算法(Leetcode)刻意练习训练营 的打卡任务是二叉树的中序遍历,由于二叉树的遍历方式通常来说有四种:前序遍历.中序遍历.后序遍历以及层次遍历,而LeetCode也有二叉树的 ...

  3. 二叉树的先序遍历(非递归)

    虽然递归简单理解,但是用递归内存开销大,耗时长,性能往往不如非递归方式 所以这里通过栈,用非递归方法实现二叉树的先序遍历 二叉树的存储结构定义: typedef struct node{int dat ...

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

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

  5. 树结构练习——排序二叉树的中序遍历(二叉搜索树)

    树结构练习--排序二叉树的中序遍历 Time Limit: 1000MS Memory limit: 65536K 题目描述 在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是--(1).每 ...

  6. 1.二叉树的中序遍历

    题目:给出一棵二叉树,返回其中序遍历 /** * Definition of TreeNode:  * class TreeNode {  * public:  *     int val;  *   ...

  7. [LeetCode] Binary Tree Postorder Traversal 二叉树的后序遍历

    Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary ...

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

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

  9. 树结构练习——排序二叉树的中序遍历

    树结构练习--排序二叉树的中序遍历 Description 在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是--(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的 ...

最新文章

  1. Koa2和Redux中间件源码研究
  2. (DP)51NOD 1183 编辑距离
  3. 马斯克豁出4300员工,参与新冠研究,论文登上Nature子刊
  4. 实现 scrollview 默认显示指定的页码
  5. matlab中描绘简单曲线和点
  6. django1.4.9 pythoon manage.py --help 子命令解析
  7. 支付宝支付系统繁忙,请稍后再试(ALI64)错误解决
  8. ios多线程之NSThread头文件详解
  9. MongoDB 事务,复制和分片的关系
  10. for 2018.12.3
  11. 未来是计算机科学的天下,美国留学信息与计算机科学发展方向
  12. 用LoadRunner实现接口测试
  13. 电脑投屏电视怎么设置_手机投屏怎么设置全屏
  14. 基于wke封装的duilib的webkit浏览器控件,可以c++与js互交,源码及demo下载地址
  15. php支付宝查询对账单下载地址,通过调用支付宝查询对账单接口返回bill_download_url下载zip,解压缩...
  16. matlab画单位圆的代码,请问用MATLAB软件,以动画的形式作出单位圆x^2 +y^2 = 1的图像的程序代码是什么?...
  17. 深入理解 padding
  18. 【前端】使用nexus搭建本地npm仓库
  19. 手机上好用的apm测试软件,在哪才能找到测apm的软件  及如合使用  – 手机爱问...
  20. 【线性代数】通俗的理解奇异值以及与特征值的区别,还有奇异值分解及其应用

热门文章

  1. 服务器装什么系统可以模拟器多开,云服务器模拟器多开
  2. 小猪o2o生活通系统安装后空白页面是什么原因怎么解决?
  3. 小睿睿的等式 (思维dp)
  4. Java抽奖问题(避免重复)
  5. dell r630 配置raid_DELL服务器硬件 配置RAID磁盘阵列 iDRAC配置
  6. soap+wsimport的webservice接口客户端实现
  7. 企业3A信用证书办理有什么作用?评级内容有哪些?
  8. Win7上通过DckerToolbox部署OnlyOffice
  9. 库卡机器人外部紧急关断已按_茂名市维修川崎机器人示教器中心
  10. Openlayers 圆的操作