Update notes

This commit is contained in:
Sainnhe Park 2023-01-31 15:44:32 +08:00
parent 37ff349aa0
commit e1d3423ee0

View File

@ -71,3 +71,5 @@ struct TreeNode {
## 技巧 ## 技巧
1. 深度优先搜索从下往上,广度优先搜索从上往下,所以如果需要处理从上往下并且状态积累的情形 (e.g. [s0404](https://leetcode.cn/problems/sum-of-left-leaves/) && [s0257](https://leetcode.cn/problems/binary-tree-paths/)) 可以先创建一个结构体用来描述节点状态,然后用 BFS 遍历。 1. 深度优先搜索从下往上,广度优先搜索从上往下,所以如果需要处理从上往下并且状态积累的情形 (e.g. [s0404](https://leetcode.cn/problems/sum-of-left-leaves/) && [s0257](https://leetcode.cn/problems/binary-tree-paths/)) 可以先创建一个结构体用来描述节点状态,然后用 BFS 遍历。
2. 写递归时,如果 `TreeNode *ptr` 不足以描述当前节点状态,则可以写一个辅助函数,接收 `TreeNode *ptr` 为参数,返回 `TreeNodeState` 来描述当前节点的状态。参考 [s0098](https://leetcode.cn/problems/validate-binary-search-tree/)
3. 另一种需要结构体的地方是需要获得每个节点路径(即根节点到当前节点所经过的路径),可以用 DFS 或 BFS 遍历。