Leetcode 437. Path Sum III

来源:互联网 发布:stddev sqlserver 编辑:程序博客网 时间:2024/06/15 19:51

题目:

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);        }    }};

原创粉丝点击