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

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

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;
    }
};

全部评论

相关推荐

美丽的95后准备进厂:第二个是外卖➕点评吧,很眼熟
点赞 评论 收藏
分享
纯真的河老师在喝茶:第一个是这个时间点岗位少,第二个是这个简历重复度太高了,10个有9个简历差不多的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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