题目链接:https://leetcode-cn.com/problems/path-sum-iii/
/** * 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 pathSum(TreeNode* root, int sum) { int count = 0; if(!root) return count; return generate(sum,root)+pathSum(root->left,sum)+pathSum(root->right,sum); } private: int generate(int sum,TreeNode* node) { int count = 0; if(node == NULL) return count; if(node->val == sum) count++; count += generate(sum-node->val,node->left); count += generate(sum-node->val,node->right); return count; } };