Merge pull request #819 from casnz1601/patch-3

Update 二叉树中递归带着回溯.md
This commit is contained in:
程序员Carl
2021-10-06 16:22:03 +08:00
committed by GitHub

View File

@ -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();
} }
``` ```