二叉树的遍历方式
- 前序遍历(Preorder Traversal 亦称先序遍历)——访问根结点的操作发生在遍历其左右子树之前。
- 中序遍历(Inorder Traversal)——访问根结点的操作发生在遍历其左右子树之中(间)。
- 后序遍历(Postorder Traversal)——访问根结点的操作发生在遍历其左右子树之后。
- 层序遍历:除了先序遍历、中序遍历、后序遍历外,还可以对二叉树进行层序遍历。设二叉树的根节点所在层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。
非常好懂吧,这里给读者安排了一个小练习并且附上答案,以供读者加深印象。
请对这个二叉树分别进行前序/中序/后序/层序遍历。
过程以及答案: 空结点用NULL来表示。
前序遍历: 根,左子树,右子树:A B D NULL NULL E NULL NULL C NULL NULL
即: A B D E C
中序遍历: 左子树 根 右子树 :NULL D NULL B NULL E NULL A NULLC NULL
即: D B E A C
后序遍历: 左子树 右子树 根 :NULL NULL D NULL NULL E B NULL NULL C A
即: D E B C A
层序遍历: 一层一层从左到右:A B C D E