简单二叉树的 遍历
如果看完还是不太懂 就观看速成视频
https://www.bilibili.com/video/BV1Ub4y147Zv/?spm_id_from=333.337.search-card.all.click&vd_source=e5f8765d50fb89ef04eb150bd76075b5
引用资料文献链接放到篇尾
简单术语解释
-
节点 (Node):二叉树中的一个元素,包含值和指向子节点的引用
-
根(Root):二叉树的顶部节点, 没有父节点。(一般时最上的单个节点)
-
叶(Leaf): 没有子节点的节点。 (一般时最底下的节点)
-
左子树/右子树(Left/Right Subtree):分别位于一个节点的左边和右边的子树
-
父节点(Parent):节点的上一级节点。
-
子节点(Child):节点的下一级节点。
前序遍历
前序遍历 根节点 第一个
从根节点 往 左子树 依次记录 直到达到 左子树的 叶,途中的内部节点都写记录
要诀: ——根节点——>左子树的节点——>直到左子树的叶——>叶的 父节点的 右子树的 子节点
前序遍历结果 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
拆分解析:倾斜数字 是加入前序的值
根节点: 1——
有子节点往下
左子树的节点: 2——
有子节点往下
左子树的节点: 3——
有子节点往下
左子树的节点同时也是叶: 4——
往上回到 父节点 3 发现 右子树的节点 5 往下
右子树的节点同时也是叶: 5——
往上回到父节点 3 发现左右子树的节点都已遍历完
往上回到父节点 2 发现右子树的节点 6 往下
右子树的节点 :6——
有子节点往下
左子树的节点 同时也是叶 :7——
往上回到父节点 6 发现右子树的节点 8 往下
右子树的节点 同时也是叶 :8——
往上回到父节点 6 遍历完
往上回到父节点 2 遍历完
往上回到根节点 1 往右边遍历 重复上面操作
中序遍历
中序遍历 根节点 在中间
中序和前序不同 前序是 从上往下记录 但是中序是从 左叶节点往上记录
左叶节点:是从根节点开始,一直左子树 直到 没有左子树
从根节点 往 左子树 途中不用记录 直到达到 左子树的 叶,才开始记录,可以有右子树的节点
要诀: 左叶 节点——>叶 父节点——>右子树的节点 的 左叶 节点——>直到没有左叶节点
中序遍历结果 4,3,5,2,7,6,8,1,11,10,12,9,14,13,15
红色数字的是第几个访问到的
拆分解析:倾斜数字 是加入中序的值
左叶节点: 4——
往上回到 父节点 3
父节点:3——
发现 右子树的节点 5 没有记录 右子树的节点 5开始 往下
右子树的节点同时也是叶: 5——
往上回到父节点 3 发现左右子树的节点都已遍历完
往上回到父节点: 2——
发现 右子树的节点 6 没有记录 右子树的节点 6开始 往下
左叶节点:7——
往上回到 父节点 6
父节点: 6——
发现 右子树的节点 8 没有记录 右子树的节点 8开始 往下
右子树的节点同时也是叶: 8——
往上回到父节点 6 发现左右子树的节点都已遍历完
往上回到父节点 2 发现左右子树的节点都已遍历完
返回父节点 即 根节点: 1——
后序遍历
后序遍历 根节点 在后间
后序和中序很像都是从 左叶节点 往上记录 不同于中序的是 后序记录节点时必须是叶即没有子节点
从根节点 往 左子树 途中不用记录 直到达到 左子树的 叶,如果当前节点有右子树节点则继续往下直到找到最左侧的叶
要诀: 左叶 节点——>叶的父节点的 右子树节点 的 左叶 节点——>直到没有左叶节点
后序遍历结果 4,5,3,7,8,6,2,11,12,10,14,15,13,9,1
红色数字的是第几个访问到的
拆分解析:倾斜数字 是加入后序的值
左叶节点: 4——
往上回到父节点: 3,发现存在子节点,往下
未发现子节点
右子树: 5——
往上回到父节点: 3,未发现子节点
父节点: 3——
往上回到父节点: 2,发现存在子节点,往下
右子树: 6 发现子节点,往下
未发现节点
左子树节点:7——
往上回到父节点: 6,发现存在子节点 往下
未发现节点
右子树节点:8——
往上回到父节点: 6,未发现子节点
父节点: 6——
往上回到父节点: 2,未发现子节点
父节点: 2——
将右侧 按照上述 进行修改 最后再加入
根节点 1 ——
资料文献
博客园 作者:ACHanHan 标题:二叉树的遍历及例题 有附代码实现:
https://www.cnblogs.com/AC673523745/p/13991094.html
Csdn 作者:白菜喵 标题:彻底弄懂二叉树的先序、中序、后序三种遍历与做题 有比较复杂的(如:只有一个节点单向 左/右二叉树,附上 前中后序 答案参考))
(因网站限制需要登陆关注才能看完,(如果不想登陆也可以看一下的,我就没登陆))
https://blog.csdn.net/eebaicai/article/details/89788098
速成视频 这个是真的快,看一下基本可以懂七七八八
https://www.bilibili.com/video/BV1Ub4y147Zv/?spm_id_from=333.337.search-card.all.click&vd_source=e5f8765d50fb89ef04eb150bd76075b5