【Python 专题】数据结构 树
- LeetCode 题目
- 104. 二叉树的最大深度(gif 图解)
- 方法一:后序遍历(DFS)
- 方法二:层序遍历(BFS)
- 872. 叶子相似的树(DFS 遍历)
- 1448. 统计二叉树中好节点的数目(DFS 遍历)
- 437. 路径总和 III(前缀和 + DFS 回溯)
- 1372. 二叉树中的最长交错路径(DFS)
- 236. 二叉树的最近公共祖先(DFS)(gif 图解)
- 199. 二叉树的右视图(BFS)
- 1161. 最大层内元素和(BFS)
- 700. 二叉搜索树中的搜索(DFS)
- 450. 删除二叉搜索树中的节点(DFS)
LeetCode 题目
树的遍历 方式总体分为两类:深度优先搜索(DFS)、广度优先搜索(BFS)。
- 常见 DFS :先序遍历、中序遍历、后序遍历。
- 常见 BFS :层序遍历(即按层遍历)。
104. 二叉树的最大深度(gif 图解)
给定一个二叉树 root
,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
方法一:后序遍历(DFS)
思路:
- 递归定义:
二叉树的最大深度 = max(左子树的最大深度, 右子树的最大深度) + 1 (即当前节点本身)
- 递归基