mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
@ -145,22 +145,22 @@ if (cur->right) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
此时就没有回溯了,这个代码就是通过不了的了。
|
因为在递归右子树之前需要还原path,所以在左子树递归后必须为了右子树而进行回溯操作。而只右子树自己不添加回溯也可以成功AC。
|
||||||
|
|
||||||
如果想把回溯加上,就要 在上面代码的基础上,加上回溯,就可以AC了。
|
因此,在上面代码的基础上,再加上左右子树的回溯代码,就可以AC了。
|
||||||
|
|
||||||
```CPP
|
```CPP
|
||||||
if (cur->left) {
|
if (cur->left) {
|
||||||
path += "->";
|
path += "->";
|
||||||
traversal(cur->left, path, result); // 左
|
traversal(cur->left, path, result); // 左
|
||||||
path.pop_back(); // 回溯
|
path.pop_back(); // 回溯,抛掉val
|
||||||
path.pop_back();
|
path.pop_back(); // 回溯,抛掉->
|
||||||
}
|
}
|
||||||
if (cur->right) {
|
if (cur->right) {
|
||||||
path += "->";
|
path += "->";
|
||||||
traversal(cur->right, path, result); // 右
|
traversal(cur->right, path, result); // 右
|
||||||
path.pop_back(); // 回溯
|
path.pop_back(); // 回溯(非必要)
|
||||||
path.pop_back();
|
path.pop_back();
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user