1、知道二叉树的先序/后序遍历和中序遍历(中序必需要知道,否则没法判断),要快速判断后序/先序遍历,首先要了解二叉树的遍历规律3d
2、二叉树遍历规律blog
一、三种遍历都有一个规律,就是:逆时针沿着二叉树外缘移动,即方向相同,以下图1:二叉树
图1遍历
二、方法
三、 不一样的是他们出发点不一样,下面说明他们的出发点和遍历顺序序列im
3、二叉树三种遍历d3
一、先序遍历img
先序遍历先从二叉树的根开始,而后到左子树,再到右子树,,如图2移动
图2co
先序遍历序列是ABDCEF,重点是记住第一个字母“A”是根,出发点是根“A”
二、中序遍历
中序遍历先从左子树开始,而后到根,再到右子树,如图3
图3
即中序遍历序列是DBAECF,重点是记住中序遍历的根位置,是在序列的第一个字母和最后一个字母之间,出发点是左子树的最下边的左边的开始,(为何到A以后直接跳过C呢?由于C也是E和F的根,因此按照中序遍历规律,先到E再到C再到F)
三、后序遍历
后序遍历先从左子树开始,而后到右子树,再到根,如图4
图4
即后序遍历序列式DBECFCA,重点是知道了根是最后面一个字母“A”, 出发点是左子树的最下边左边。
4、道了先序遍历和中序遍历,或者是后序遍历和中序遍历,判断出后序遍历,或者是先序遍历的方法
好比知道先序遍历是ABDCEF,中序遍历是DBAECF,那么能够从先序遍历知道这个二叉树的根是A,(若是是选择题,能够快速判断出后序遍历的序列最后面一个字母确定是A,而后选择最后面有A的选项)
从中序遍历看出A把DB和ECF隔开,即DB \A \ECF,所以能够知道DB属于左子树,ECF属于右子树
若是是填空题就要写出该二叉树的图,先写出左子树,从中序遍历知道DB是右子树,把DB当作一个总体,则从先序遍历判断能够肯定B是D的根,这样就肯定出左子树的图是
把ECF右子树当作一个总体,则从先序遍历能够知道C是E和F的根,肯定出右子树是
而后把两个子树连在根“A”的下面,再根据后序遍历规律读出序列就能够了