相信大家在写递归的时候都会遇到几个问题
如何回溯到上一步,回溯到上一步走过的代码是否会产生影响作用
举例
class Solution {
public:
vector<TreeNode*>path_p;
vector<TreeNode*>path_q;
void get(TreeNode*root,TreeNode*target,vector<TreeNode*>&path,vector<TreeNode*>paths)
{
if(root==NULL) return;
paths.push_back(root);
if(root!=target)
{
get(root->left,target,path,paths);
get(root->right,target,path,paths);
}
else{
path=paths;
}
}
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
vector<TreeNode*>a;
get(root,p,path