一、知道二叉树的先序/后序遍历和中序遍历(中序必须要知道,不然无法判断),要快速判断后序/先序遍历,首先要了解二叉树的遍历规律

二、二叉树遍历规律

1、三种遍历都有一个规律,就是:逆时针沿着二叉树外缘移动,即方向相同,如下图1:

图1

2、

3、  不同的是他们出发点不同,下面说明他们的出发点和遍历顺序序列

三、二叉树三种遍历

1、先序遍历

先序遍历先从二叉树的根开始,然后到左子树,再到右子树,,如图2

图2

先序遍历序列是ABDCEF,重点是记住第一个字母“A”是根,出发点是根“A”

2、中序遍历

中序遍历先从左子树开始,然后到根,再到右子树,如图3

图3

即中序遍历序列是DBAECF,重点是记住中序遍历的根位置,是在序列的第一个字母和最后一个字母之间,出发点是左子树的最下边的左边的开始,(为什么到A之后直接跳过C呢?因为C也是E和F的根,所以按照中序遍历规律,先到E再到C再到F)

3、后序遍历

后序遍历先从左子树开始,然后到右子树,再到根,如图4

图4

即后序遍历序列式DBECFCA,重点是知道了根是最后面一个字母“A”, 出发点是左子树的最下边左边。

四、道了先序遍历和中序遍历,或者是后序遍历和中序遍历,判断出后序遍历,或者是先序遍历的方法

比如知道先序遍历是ABDCEF,中序遍历是DBAECF,那么可以从先序遍历知道这个二叉树的根是A,(如果是选择题,可以快速判断出后序遍历的序列最后面一个字母肯定是A,然后选择最后面有A的选项)

从中序遍历看出A把DB和ECF隔开,即DB \A \ECF,因此可以知道DB属于左子树,ECF属于右子树

如果是填空题就要写出该二叉树的图,先写出左子树,从中序遍历知道DB是右子树,把DB看成一个整体,则从先序遍历判断可以确定B是D的根,这样就确定出左子树的图是

把ECF右子树看成一个整体,则从先序遍历可以知道C是E和F的根,确定出右子树是

然后把两个子树连在根“A”的下面,再根据后序遍历规律读出序列就可以了

转载于:https://www.cnblogs.com/davygeek/p/4375557.html

快速判断二叉树先序遍历 后序遍历相关推荐

  1. 如何判断二叉树的前序,中序,后序遍历

    文章目录 前言 一.如何判断二叉树的前序,中序,后序遍历? 二.已知二叉树的前序遍历和中序遍历,如何得到它的后序遍历? 三.程序实现 总结 前言 最近复习题中看到二叉树,对于它的前序,中序,后序遍历的 ...

  2. 二叉树的前序、中序、后序遍历与创建

    #include <iostream> #include <string> #include <stack> using namespace std; struct ...

  3. 手动创建一棵二叉树,然后利用前序、中序、后序、层序进行遍历(从创建二叉树到各种方式遍历)(含运行结果)

    手动创建一棵二叉树,然后利用前序.中序.后序.层序进行遍历 import java.util.LinkedList; import java.util.List; import java.util.Q ...

  4. 二叉树的前中后序递归和非递归遍历操作【代码】

    "遍历"是二叉树各种操作的基础,可以在遍历过程中对节点进行各种操作,如:求节点的双亲,求节点的孩子,判断节点的层次.当然,还有一些更重要的操作,例如,依据遍历序列建立二叉树,对建立 ...

  5. 分别用递归和非递归方式实现二叉树先序、中序和后序遍历(java实现)

    分别用递归和非递归方式实现二叉树先序.中序和后序遍历 用递归和非递归方式,分别按照二叉树先序.中序和后序打印所有的节点.我们约定:先序遍历顺序 为根.左.右;中序遍历顺序为左.根.右;后序遍历顺序为左 ...

  6. 二叉树的前序,中序,后序,层序遍历的递归和非递归实现

    直接上代码 import java.util.Stack;public class BinaryTree {//定义一棵二叉树,包括左子树.右子树.该节点的值和构造器public BinaryTree ...

  7. leetcode 106. 从中序与后序遍历序列构造二叉树 c语言递归解法

    如题: 根据一棵树的中序遍历与后序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素.例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9, ...

  8. 105从前序与中序遍历序列构造二叉树 106 从中序与后序遍历序列构造二叉树 (递归 + 哈希)

    引言 这两道题主要是考察二叉树遍历的掌握,即由前序和中序推出原二叉树,由后序和中序推出原二叉树,这里先来说一下推导过程: 前序和中序 知道前序遍历和中序遍历,如何推原二叉树?(直接是结论,可以自行推导 ...

  9. 算法练习day10——190328(二叉树的先序、 中序、 后序遍历, 包括递归方式和非递归方式、找到一个节点的后继节点、二叉树的序列化和反序列化)

    1.实现二叉树的先序. 中序. 后序遍历, 包括递归方式和非递归方式 1.1 访问节点的顺序 节点访问顺序如下图所示: 访问顺序:1 2 4 4 4 2 5 5 5 2 1 3 6 6 6 3 7 7 ...

最新文章

  1. sql server2005 常用语句
  2. 【Linux 内核】Linux 内核体系架构 ( 硬件层面 | 内核空间 | 用户空间 | 内核态与用户态切换 | 系统调用 | 体系结构抽象层 )
  3. 集训2--进程控制理论
  4. apache.camel_Apache Camel 3.2 – Camel的无反射配置
  5. C#.NET编程----Spring.NET NHibernate整合(一)
  6. ue4是什么意思_UE4 C++基础教程 - 资源常见名词解释
  7. DSP重新上电程序不能运行
  8. 全网最快的网络服务器是什么,最好用最快的首选 DNS 服务器地址设置 (电信/联通/移动)...
  9. UE4游戏提取的通用步骤(21_9_8)
  10. windows 版本 Appium 环境搭建
  11. 计算机cpu的字母,笔记本计算机CPU型号后缀字母HQ,U,Y的详细说明
  12. Modern PHP
  13. Swift SwiftUI 必备础库之 01 Introspect
  14. Javabase入门介绍
  15. python学习之人民币兑美元之间的转换
  16. NOIP2012——文化之旅
  17. rpg人物制作软件_《RPG Maker MZ》——轻松上手的角色扮演游戏制作工具
  18. 全文搜索引擎Elasticsearch的初体验:基本概念和操作
  19. 转载--文章(感谢陈晨博主分享) 关于 Json.net
  20. js读取本地Excel内容

热门文章

  1. dedecms后台崩溃或者后台访问慢的解决方法
  2. Sql Server查询性能优化之走出索引的误区
  3. NGRAIN在模型轻量化上的应用
  4. python boxplot用法_Boxplot的介绍和使用
  5. python创建画布与子图_python实现在一个画布上画多个子图
  6. 永济计算机培训,永济云计算培训,永济计算机培训学费,永济计算机学完工作好找吗 - IT教育频道...
  7. c语言怎么算n以内素数,关于求N以内素数的一点小问题(N小于一亿)
  8. ubuntu用户目录安装pip(无root权限)
  9. windows下的工具链 树莓派_Windows下交叉编译Qt 5.14.2至树莓派平台 QEMU模拟树莓派...
  10. BigDecimal的加减乘除