您的位置:首页 > 其它

Path Sum III ---LeetCode

2016-11-28 14:55 381 查看
https://leetcode.com/problems/path-sum-iii/

这道题与 Path Sum 与 Path Sum II 的区别在于,这道题不需要遍历到叶子节点再结束,同时也不用从根节点开始记录,只要遇到有相加等于 sum 的节点,就记录下来,最终输出有几条这样的路径。

/**
* Definition for a binary tree node.
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int pathSum(TreeNode root, int sum) {
if (root == null) return 0;
return helper(root, sum) + pathSum(root.left, sum) + pathSum(root.right, sum);
}
public int helper(TreeNode root, int sum) {
if (root == null) return 0;
int count = 0;
if (root.val == sum) count++;
return count + helper(root.left, sum - root.val) + helper(root.right, sum - root.val);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: