二叉树的三种遍历:前序,中序,后序
之前总是搞不懂这个遍历法则,有时候即使记住了也很容易忘记。之后在慕课看了学
习视频后,感慨颇深,一下就记住了。分享给大家,相互学习,共同进步。
先解释一下前序、中序、后序的遍历的优先原则:
前序:根>左>右
中序:左>根>右
后序:左>右>根
看看我的三角形原则 :
思路如下:
1.首先无论是哪种顺序遍历,它都是一条路线行驶的:
2.整个树从根节点先行驶遍历一遍,从左到右:
3.每一个节点都会经过它三次,分别标记为:
这三个标号会有五种出现的可能(标号方式按照路线为逆时针,):
(1)改节点为根节点:左1,下2,右3;
(2)该节点不为根节点,且存在左右子节点:左1,下2,右3;
(3)该节点不为根节点,且只存在左子节点:左1,右2,3;
(4)该节点不为根节点,且只存在右子节点:左1,2,右3;
(5)该节点为叶子节点:逆时针1,2,3;
(情况(3)(4)记为缺哪补哪,哈哈,这样好记些!)
4.做了标记的路线:
5.遍历次序的最终结果:
(1)前序遍历:行驶一遍见到下标为1 的按序记下;
则:A1、B1、F1、G1、L1、C1、H1
前序遍历结果:A(BFGL)(CH)
(2)中序遍历:行驶一遍见到下标为2 的按序记下;
则:F2、B2、G2、L2、A2、H2、C2
前序遍历结果:(FBGL)A(HC)
(3)后序遍历:行驶一遍见到下标为3的按序记下;
则:F3、L3、G3、B3、H3、C3、A3
前序遍历结果:(FLGB)(HC)A