携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第30天,点击查看活动详情 >>
二叉树主要有三种遍历的方式
本文将使用如下树进行讲解学习
先序遍历
采用先序遍历二叉树的思路为:
- 找到二叉树的根节点(76)
- 访问76节点的左子树(65)
- 访问65节点的左子树(23)
- 访问23节点的左子树(11)
- 访问11节点发现没有左子树 只有右子树则为22
- 22没有左右子树,此子树遍历完毕
- 返回23遍历右子树37
- 按照上述思路依次访问得:37,32,59,52
- 当23这颗子树访问完毕返回65子树发现无右节点
- 访问96子树
- 按照上述思路
最终先序遍历结果为: 76,65,23,11,22,37,32,59,52,96,77,84,90,86
中序遍历
采用中序遍历二叉树思路为:
- 先寻找左子树 发现最下层11无左子树则第一位是11
- 跟随左根右逻辑,遍历完左子树后查询根节点再遍历右子树,从上到下
- 当23的左子树遍历完成后,返回23进行遍历右子树
- 右子树找到最下层的左子树进行遍历,从32开始
- 遍历完左子树后进行遍历右子树从根部52开始
- 以此类推,当遍历完65节点后返回96节点进行遍历
- 96的左子树为77
- 77寻找左子树发现没有 进行寻找右子树,寻找到底部为86
- 按照上述流程进行依次遍历即遍历完成 最终中序遍历结果为:11,22,23,32,37,52,59,65,76,77,86,90,84,96
后序遍历
采用后序遍历二叉树思路为:
- 后序遍历遵循左右根的原则,即先左后右再根
- 从下往上发现11无左节点,仅有右节点22
- 11子树遍历完成后遍历23子树的右子树
- 先遍历37子树的左节点即32后遍历右子树即52,59(需要从根部向上遍历) 最终后序遍历结果为:22,11,32,52,59,37,23,65,86,90,84,77,96,76