二叉树(2)- 遍历二叉树
有任何问题,欢迎交流!微博@HelloWorld-_-
接着 创建二叉树 文章说一说遍历二叉树的几种方法
众所周知,二叉树的遍历方法分为4类,分别为 先序遍历、中序遍历、后序遍历和分层遍历 。记得当初学习二叉树的时候,对先序遍历、中序遍历和后序遍历总是混淆(上课时没认真听讲),忘记访问的顺序,后来自己归纳总结了两点,然后就再也没忘记过,下面来介绍下我的记忆小窍门
先序遍历 :根、左子树、右子树
中序遍历 :左子树、根、右子树
后序遍历 :左子树、右子树、根
好了下面通过示例,再描述下二叉树遍历的过程。
最容易理解的就是 分层遍历 , 分层遍历 按照 从上至下、从左至右 的顺序依次访问每个结点。下面通过一个示意图来表示二叉树 分层遍历 顺序
首先回忆下 先序遍历 的规则:根、左子树、右子树。根据规则,首先访问 根A ,然后是 左子节点B ,再访问完 B 后,并不是直接去访问 A 的 右子节点C ,因为 A 的左子树还没有访问完,所以下面访问的节点是 D 。 节点D 没有子节点,所以接着访问 结点E 。当访问完 节点E 后, 根A 的整个左子树访问完毕,接下来开始访问 A 的 右子节点C ,后面的访问顺序同 节点B 。
回忆下 中序遍历 的规则:左子树、根、右子树。根据规则,首先判断 节点A ,因为 A 是 根节点 ,所以接下来判断其 左子结点B 。 节点B 相对于 节点D、E 来说,也是 根节点 ,所以继续判断 节点B 的 左子结点D , 节点D 是叶子节点,所以第一个访问的是 节点D 。访问完 节点D 后, 节点B 的 左子树 都访问完成,然后紧接着访问 结点B , 节点E 。访问完 节点E 后, 节点A 的 左子树 都访问完成,然后访问 节点A ,紧接着同理访问 节点A 的右子树。
后序遍历 的规则:左子树、右子树、根。同理 中序遍历 的分析过程。