您的位置:首页 > 其它

Leetcode 437. Path Sum III

2017-07-13 10:39 441 查看
题目:

You are given a binary tree in which each node contains an integer value.

Find the number of paths that sum to a given value.

The path does not need to start or end at the root or a leaf, but it must go downwards (traveling only from parent nodes to child nodes).

The tree has no more than 1,000 nodes and the values are in the range -1,000,000 to 1,000,000.
思路:
每一个节点都可能成为所求路径的头节点,所以要遍历每个节点,结果就是一每个节点为头的所有满足路径数目之和,递归求解。class Solution {
public:
int sumN(TreeNode* root,int sum,int cur) {
if(root == NULL) return 0;
if(root->val+cur == sum) {
return 1+sumN(root->left,sum,cur+root->val)+sumN(root->right,sum,cur+root->val);
} else {
return sumN(root->left,sum,cur+root->val)+sumN(root->right,sum,cur+root->val);
}
}
int pathSum(TreeNode* root, int sum) {
if(root ==NULL) {
return 0;
} else {
return sumN(root,sum,0)+pathSum(root->left,sum)+pathSum(root->right,sum);
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: