二叉树和为某一值的路径(递归全局变量回溯)

二叉树中和为某一值的路径

http://www.nowcoder.com/questionTerminal/b736e784e3e34731af99065031301bca

/*
两个递归口,之间是递归先后关系
递归口的前后语句(操作)代表边走边操作(从前往后),后面的语句代表每个递归口退出都要进行操作(从后往前操作),
*/
class Solution {
public:
    vector<vector<int> > ans;
    vector<int> path;
    void dfs(TreeNode* cur, int value){
        if(!cur || value < 0) return;
        value -= cur->val;
        path.push_back(cur->val);
        if(value == 0 && !cur->left && !cur->right) ans.push_back(path);
        dfs(cur->left, value);
        dfs(cur->right, value);
        path.pop_back(); //两个递归出口推出递归时都会执行这一句
    }
    vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
        dfs(root, expectNumber);
        return ans;
    }
};
全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务