【二叉树】DFS统计节点和出现的个数

来源:互联网 发布:淘宝广告商品 编辑:程序博客网 时间:2024/06/06 12:52

题目链接:https://leetcode.com/problems/path-sum-iii/#/description

/** * 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:    int cnt=0;    int pathSum(TreeNode* root, int sum) {        if(root==NULL) return 0;        //  dfs向下搜索,对于每个节点再次进行dfs节点和搜索        return getSum(root,0,sum)+pathSum(root->left,sum)+pathSum(root->right,sum);    }    //  pre保留节点和,dfs并统计节点和为sum的个数    int getSum(TreeNode* root,int pre,int sum){        if(root==NULL) return 0;        pre=pre+root->val;        return getSum(root->left,pre,sum)+getSum(root->right,pre,sum)+(pre==sum);    }};


原创粉丝点击