Skip to content

Commit 7b6fd76

Browse files
authored
Update 二叉树中递归带着回溯.md
进一步探讨左右子树情况
1 parent 87f9a26 commit 7b6fd76

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

problems/二叉树中递归带着回溯.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -145,22 +145,22 @@ if (cur->right) {
145145
}
146146
```
147147
148-
此时就没有回溯了,这个代码就是通过不了的了
148+
因为在递归右子树之前需要还原path,所以在左子树递归后必须为了右子树而进行回溯操作。而只右子树自己不添加回溯也可以成功AC
149149
150-
如果想把回溯加上,就要 在上面代码的基础上,加上回溯,就可以AC了。
150+
因此,在上面代码的基础上,再加上左右子树的回溯代码,就可以AC了。
151151
152152
```CPP
153153
if (cur->left) {
154154
path += "->";
155155
traversal(cur->left, path, result); // 左
156-
path.pop_back(); // 回溯
157-
path.pop_back();
156+
path.pop_back(); // 回溯,抛掉val
157+
path.pop_back(); // 回溯,抛掉->
158158
}
159159
if (cur->right) {
160160
path += "->";
161161
traversal(cur->right, path, result); // 右
162-
path.pop_back(); // 回溯
163-
path.pop_back();
162+
path.pop_back(); // 回溯(非必要)
163+
path.pop_back();
164164
}
165165
```
166166

0 commit comments

Comments
 (0)