前置知识
二叉树是一种数据结构,特点有
1、每个结点最多有两颗子树,结点的度最大为2。
2、左子树和右子树是有顺序的,次序不能颠倒。
3、即使某结点只有一个子树,也要区分左右子树。
如上图就是一颗二叉树
而二叉树最经典的问题莫过于它的遍历顺序,前中后序三种遍历顺序,且看我给你娓娓道来
二叉树的遍历顺序
前
如图,这个二叉树的前序遍历顺序应该是什么呢
这里我教大家一个很简单的方法,二叉树的前中后都是针对父节点说的,前序遍历就是先遍历父节点,再遍历左子节点,最后是右子节点,那么上图我们先针对根节点写出前序遍历就是
a -> b -> c
然后这个时候我们再怎么写呢,我们再把这个顺序里除了a这个父节点的其他左右节点当成父节点,再去写它们的前序遍历
针对b有
b -> d -> e
针对c有
c
因此把它们的顺序再替换到最前面的顺序里就是
a -> b -> d -> e -> c
所以这样二叉树的前序遍历顺序就被我们写出来了
中
针对根节点的中序遍历,先左子节点,再根节点,最后右子节点
b -> a -> c
然后对子节点再进行中序遍历为
对b
d -> b -> e
对c
c
最后替换成
d -> b -> e -> a -> c
后
根节点
b -> c -> a
对b
d -> e -> b
对c
c
替换后
d -> e -> b -> c -> a
练习
最后给大家放上一个题目,供大家练习
写出上图二叉树的前中后序遍历顺序
前
a -> b -> d -> h -> e -> i -> c -> f -> j -> g -> k
中
h -> d -> b -> i -> e -> a -> f -> j -> c -> g -> k
后
h -> d -> i -> e -> b -> j -> f -> k -> g -> c -> a