题单介绍
树是无环连通图。本单练习树的存储、深度、子树大小、LCA、直径与重心。
学习目标
- 会建树并 DFS 求深度、子树大小
- 了解倍增 LCA 与树的直径(两次 BFS/DFS)
- 无根树常先指定 1 号点为根再 DFS
- 题解只给思路与步骤,请自己实现代码
阶段安排(共 17 题)
1. 树的基础(5 题)
建树、遍历。
2. 树的深度和大小(5 题)
DFS 统计。
3. 树的公共祖先(3 题)
LCA。
4. 树的直径/中心/重心(4 题)
两次搜索或换根思想。
使用建议
01
子结点的数量
入门
--
练习
02
子结点的数量(2)
入门
--
练习
03
谁的孙子最多
基础
--
练习
04
找树根
入门
--
练习
05
谁的孙子最多II
基础
--
练习
06
树的高度
入门
--
练习
07
树的高度(2)
基础
--
练习
08
子树的大小及深度
入门
--
练习
09
树的宽高及两点的距离
基础
--
练习
10
Milk Visits
基础
--
练习
11
树的公共祖先(LCA)
入门
--
练习
12
树的公共祖先(LCA)(2)
入门
--
练习
13
树的公共祖先(LCA)(3)
提高
--
练习
14
树的直径
入门
--
练习
15
树的中心
基础
--
练习
16
树的重心
基础
--
练习
17
树的重心(2)
基础
--
练习