Path Sum III ---LeetCode

来源:互联网 发布:上帝 知乎 编辑:程序博客网 时间:2024/05/16 08:09

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);    }}
0 0
原创粉丝点击