[二叉树专题]二叉树的前中后序遍历

前置知识

请添加图片描述

二叉树是一种数据结构,特点有

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

Guess you like

Origin blog.csdn.net/m0_61607810/article/details/121347950