题解 | #二叉树中和为某一值的路径(三)#

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

https://www.nowcoder.com/practice/965fef32cae14a17a8e86c76ffe3131f

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param root TreeNode类 
     * @param sum int整型 
     * @return int整型
     */
    int road=0;

    void jisuan(TreeNode* root,int sum,int s){   //从当前子树进行计算,只要有一处等于sum,road++
        s+=root->val;  //s用于计算从当前子树根节点到目前节点的和
        if(s==sum) road++;    //只要出现一次符合的值 road就自增一次
        if(root->left!=NULL) jisuan(root->left,sum,s);
        if(root->right!=NULL) jisuan(root->right,sum,s);
    }

    void quan(TreeNode* root,int sum){     //从每个节点都要算一下往下有没有符合sum的路径
        jisuan(root,sum,0);
        if(root->left!=NULL) quan(root->left,sum);
        if(root->right!=NULL) quan(root->right,sum);
    }


    int FindPath(TreeNode* root, int sum) {
        // write code here
        if(root==NULL) return 0;
        quan(root,sum);
        return road;
    }
};

全部评论

相关推荐

06-14 19:09
门头沟学院 Java
darius_:给制造业搞的,什么物料管理生产管理,设备管理点检,最最关键的就是一堆报表看板。个人觉得没啥技术含量都是些基本的crud,但是业务很繁琐那种
点赞 评论 收藏
分享
每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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