题解 | #二叉树根节点到叶子节点和为指定值的路径#

二叉树根节点到叶子节点和为指定值的路径

http://www.nowcoder.com/practice/840dd2dc4fbd4b2199cd48f2dadf930a

C++ -DFS-

/**
 * struct TreeNode {
 *    int val;
 *    struct TreeNode *left;
 *    struct TreeNode *right;
 * };
 */

class Solution {
public:
    /**
     * 
     * @param root TreeNode类 
     * @param sumtmp int整型 
     * @return int整型vector<vector<>>
     */
    vector<vector<int> > pathSum(TreeNode* root, int sum) {
        // write code here
        // 保存返回值
        vector<vector<int>> res;

        // 临时数组
        vector<int> rettmp;

        // 递归
        dfs(res, rettmp, root, sum, 0);
        return res;
    }


    //对所有路径进行查找,直到结束
    void dfs(vector<vector<int>>&res, vector<int>&rettmp, TreeNode* ROOT, int sum, int tmp) {
        //如果节点为空,返回
        if (ROOT == nullptr) return ;

        //保存值
        int sumtmp = tmp + ROOT->val;
        rettmp.push_back(ROOT->val);

        //如果是叶子节点,判断是否满足要求
        if (ROOT->left == nullptr  && ROOT->right == nullptr ) {
            if (sumtmp == sum) {
                res.push_back(rettmp);//找到一个满足要求的路径
            }
            return ;//返回上一层
        }

        //如果是左子树
        if (ROOT->left) {
            dfs(res, rettmp, ROOT->left, sum, sumtmp);

            //如果左边遍历完了,那么需要回溯一个
            rettmp.pop_back();
        }

        //如果是右子树
        if (ROOT->right) {
            dfs(res, rettmp, ROOT->right, sum, sumtmp);
            //如果右边遍历完了,那么需要回溯一个
            rettmp.pop_back();
        }

    }

};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 11:27
明天又是董事长面,啥时候是个头啊
积极向上的林同学:董事长亲自面试
点赞 评论 收藏
分享
陈逸轩1205:才105 哥们在养生呢
点赞 评论 收藏
分享
05-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
来个大佬救一下,为上投了都是石沉大海了,没实习经历的话怕秋招直接进不了面。什么实习这么难找,基本
心态爆炸了:现在正式的岗位都少,实习基本不咋招的,除了大厂,中小企业其实没那么多岗位需求,就算是有,大多都是招一两个廉价劳动力,同时,他们也会希望你一来就能干活的,没时间培训你,就让你了解公司的项目,你了解完就可以开始干活。再者是,很多低质量的实习其实用处没有那么大的。我去年也是找实习找到破防,最后去了一家深圳的小公司实习,工作对我来说很简单,甚至不如我在学校做的项目,秋招的时候,这段实习经历也并没有帮上什么忙,投递简历,依旧非常低的回复率。低回复率是常态,尤其是找实习,找不到,那就把重心放在优化自己的简历和项目,多看八股文,锻炼自己的面试能力,多看别人的面经,自己模拟面试,等秋招的时候,只要有那么寥寥几次,好好抓住那几次机会。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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