原理
- 先序遍历
又可叫前根序遍历,先遍历根节点,再遍历根节点的左子树,然后遍历根节点的右子树。 - 中序遍历
又可叫中根序遍历,先遍历根节点的左子树,再遍历根节点,然后遍历根节点的右子树。 - 后序遍历
又可叫后根序遍历,先遍历根节点的左子树,再遍历根节点的右子树,然后遍历根节点。 - 层次遍历
对整棵二叉树按从上到下,对每一层按从左到右的顺序进行遍历。这里我们需要借助队列:先访问节点的孩子节点也应比后访问节点的孩子节点先访问。故这就类似于队列先进先出的性质,每访问一个节点时,它的孩子节点(如果存在)就随着入队。
如图
![]()
先序遍历结果为——ABDHECFG
(首先从根节点开始,然后左节点,左节点成为根节点,然后再左节点,然后右节点(如果左子树遍历完后就遍历该根节点的右子树))
中序遍历结果为——HDBEAFCG
(当左节点被读取后,左节点被当作根节点)
后序遍历结果为——HDEBFGCA
(注意每个节点的左右子树必须遍历完)
层次遍历结果为——ABCDEFGH
![]()
先序遍历为 ABCDEFGHIJK
中序遍历为 CEDFBAHKJIG
后序遍历为 EFDCBKJIHGA
一些试题
操作
- 迭代实现