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

//思路具体看题解。我是参考题解思路写的。
class Solution {
public:

    void solve(TreeNode* root,int sum,int &count)
    {
        if(root==nullptr)
            return;
        if(root->val==sum)
        {
            count++;
        }
        solve(root->left, sum-root->val, count);
        solve(root->right, sum-root->val, count);
    }

    int FrontOrder(TreeNode* root,int sum)
    {
        if(root==nullptr)
            return 0;
        int current=0;
        solve(root, sum, current);//处理当前节点
        int left=0;
        int right=0;
        if(root->left)
        {
            left=FrontOrder(root->left, sum);//递归两个孩子
        }
        if(root->right)
        {
            right=FrontOrder(root->right, sum);
        }
        return left+right+current;
    }

    int FindPath(TreeNode* root, int sum) {
        return FrontOrder(root, sum);
    }
};

全部评论

相关推荐

字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务