Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 957ed31

Browse files
committed
Update 01.Tree-DP.md
1 parent 03011d8 commit 957ed31

File tree

1 file changed

+8
-36
lines changed

1 file changed

+8
-36
lines changed

‎Contents/10.Dynamic-Programming/06.Tree-DP/01.Tree-DP.md

Lines changed: 8 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,45 +4,17 @@
44
55
![](https://qcdn.itcharge.cn/images/20230418114342.png)
66

7-
> **树形 DP 的关键思路**:先通过递归的方式求解每棵子树,然后在回溯时,自底向上地从子节点向上进行状态转移。只有在当前节点的所有子树求解完毕之后,才可以求解当前节点,以及继续向上进行求解。
7+
在使用树形 DP 时,常用的方向有以下两种:
88

9-
## 2. 树形 DP 的简单例子
9+
1. **自底向上**:通过递归的方式求解每棵子树,然后在回溯时,自底向上地从子节点向上进行状态转移。只有在当前节点的所有子树求解完毕之后,才可以求解当前节点,以及继续向上进行求解。
10+
2. **自顶向下**:从根节点开始向下递归,逐层计算子节点的状态。这种方法常常使用记忆化搜索来避免重复计算,提高效率。
1011

11-
### 2.1 二叉树的直径
12+
自顶向下的树形 DP 问题比较少见,大部分树形 DP 都是采用「自底向上」的方向进行推导。
1213

13-
#### 2.1.1 题目链接
14+
## 2. 树形 DP 的简单例题
1415

15-
-[543. 二叉树的直径 - 力扣](https://leetcode.cn/problems/diameter-of-binary-tree/)
16+
下面以这道题为例,介绍一下树形 DP 的一般解题思路。
1617

17-
#### 2.1.2 题目大意
18+
##3. 换根树形 DP
1819

19-
**描述**:给定一个二叉树的根节点 $root$。
20-
21-
**要求**:计算该二叉树的直径长度。
22-
23-
**说明**:
24-
25-
- **二叉树的直径长度**:二叉树中任意两个节点路径长度中的最大值。
26-
- 两节点之间的路径长度是以它们之间边的数目表示。
27-
- 这条路径可能穿过也可能不穿过根节点。
28-
29-
**示例**:
30-
31-
- 示例 1:
32-
33-
```Python
34-
给定二叉树:
35-
1
36-
/ \
37-
2 3
38-
/ \
39-
4 5
40-
输出:3
41-
解释:该二叉树的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。
42-
```
43-
44-
#### 2.1.3 解题思路
45-
46-
47-
48-
## 3. 树形 DP 的应用
20+
## 4. 树形 DP 的应用

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /