二叉树的4种遍历图解

702 阅读1分钟

这是一棵二叉树

遍历这棵二叉树无非有以下两种方式

层次遍历

普通遍历:从上到下从左到右

在普通遍历方式中,整个遍历二叉树的过程中,每个节点都被经过了 3 次(虽然叶子节点看似只经过了 2 次,但实际上可以看做是 3 次)。以节点 2 为例,它被经过了 3 次。

因此,在编程实现时,我们可以设定真正访问各个节点的时机,换句话说,我们既可以在第一次经过各节点时就执行访问程序,也可以在第二次经过各节点时访问,甚至可以在最后一次经过各节点时访问。

这也就引出了以下 3 种遍历二叉树的算法:

  • 先序遍历:每遇到一个节点,先访问,然后再遍历其左右子树(对应①)

  • 中序遍历:第一次经过时不访问,等遍历完左子树之后再访问,然后遍历右子树(对应②)

  • 后序遍历:第一次和第二次经过时都不访问,等遍历完该节点的左右子树之后,最后访问该节点(对应③)

以图一二叉树为例:

其先序遍历算法访问节点的先后次序为:

1 2 4 5 3 6 7

中序遍历算法访问节点的次序为:

4 2 5 1 6 3 7

后序遍历访问节点的次序为:

4 5 2 6 7 3 1

以上就是二叉树 4 种遍历算法的由来