快速判断二叉树先序遍历 后序遍历

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

 

二、二叉树遍历规律

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”的下面,再根据后序遍历规律读出序列就可以了

 

《快速判断二叉树先序遍历 后序遍历》

    原文作者:davygeek
    原文地址: https://www.cnblogs.com/davygeek/p/4375557.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞