能帮到你的话,就给个赞吧 😘
文章目录
- 二叉树遍历算法
- 什么是二叉树遍历
- 递归遍历
- 1.前序遍历 = 进入节点时
- 2.中序遍历 = 遍历完左子树回到节点。此操作需要等到所有左树节点做完后才会做
- 3.后序遍历 = 遍历完左右子树回到节点。左右子树的所有节点都做完操作后,回到当前节点才会做此操作 = 离开节点
- 二叉树遍历的要点
- 题目顺序
- 01 144. 二叉树的前序遍历
- 02 589. N 叉树的前序遍历
- 03 226. 翻转二叉树
- 04 404. 左叶子之和
- 05 104. 二叉树的最大深度
- 06 559. N 叉树的最大深度
- 07 111. 二叉树的最小深度
- 08 112. 路径总和
- 09 113. 路径总和 II
- 10 515. 在每个树行中找最大值
- 11 102. 二叉树的层序遍历
- 12 116. 填充每个节点的下一个右侧节点指针
- 12 200. 岛屿数量
二叉树遍历算法
指遍历一遍二叉树就能得到答案
什么是二叉树遍历
二叉树遍历 = 前中后序遍历
= 递归遍历 + 3种时间节点
递归遍历会依次遍历到每个节点。
而前中后序则是在递归遍历的基础上选择操作发生的时间。
递归遍历
递归遍历的顺序是固定的。也就是每个节点的遍历顺序是固定的。
没错,也许你会认为是有三种遍历顺序,但其实只有一种,只决定于递归。
1.前序遍历 = 进入节点时
2.中序遍历 = 遍历完左子树回到节点。此操作需要等到所有左树节点做完后才会做
3.后序遍历 = 遍历完左右子树回到节点。左右子树的所有节点都做完操作后,回到当前节点才会做此操作 = 离开节点
二叉树遍历的要点
1.每个节点应该做什么,在什么时间做
2.递归遍历会依次将1应用到每个节点。
题目顺序
01 144. 二叉树的前序遍历
02 589. N 叉树的前序遍历
03 226. 翻转二叉树
翻转每个节点
04 404. 左叶子之和
所有左叶子相加
05 104. 二叉树的最大深度
维护节点的深度,更新最大
06 559. N 叉树的最大深度
07 111. 二叉树的最小深度
维护叶子节点的深度,更新最小
08 112. 路径总和
路径:根节点到叶子节点
遍历所有路径,判断pathSum == targetSum
09 113. 路径总和 II
遍历所有路径,保存pathSum == targetSum的路径
10 515. 在每个树行中找最大值
更新每行的最大值
11 102. 二叉树的层序遍历
更新每层
12 116. 填充每个节点的下一个右侧节点指针
填充每个节点的next
12 200. 岛屿数量
DFS,搜索1