前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 437. Path Sum III

LeetCode 437. Path Sum III

作者头像
我有一只萌妹子
发布2022-06-23 14:01:29
1590
发布2022-06-23 14:01:29
举报
文章被收录于专栏:编程碎碎念编程碎碎念

https://leetcode.com/problems/path-sum-iii/

本题和之前的Path Sum有些类似,但需要注意的是,之前的路径必须是从根节点到叶子节点的路径和,而本题中任意路径都需要统计,所以我们在递归的每一层中,向下递归时需要考虑包含当前节点和不包含当前节点的情况。代码如下:

代码语言:javascript
复制
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    
    //以Node为根节点的二叉树中,寻找包含Node 的路径
    int findPath(TreeNode* node ,int num){
        if( node == nullptr )
            return 0;
        int res = 0;
        if( node->val == num )
            res += 1;    
        res += findPath( node->left, num - node->val );
        res += findPath( node->right, num - node->val );    
        return res;
    }
    
    
    int pathSum(TreeNode* root, int sum) {
        if( root == nullptr )
            return 0;
        int res = findPath( root,sum );
        
        res += pathSum( root->left, sum );
        res += pathSum( root->right, sum );
        
        return res;
        
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档