diff --git a/java/path-sum-iii.java b/java/path-sum-iii.java new file mode 100644 index 0000000..983f2d2 --- /dev/null +++ b/java/path-sum-iii.java @@ -0,0 +1,21 @@ +class Solution { + private int pathSumIncluding(TreeNode node, long target) { + if (node == null) { + return 0; + } + + return (node.val == target ? 1 : 0) + + pathSumIncluding(node.left, target - node.val) + + pathSumIncluding(node.right, target - node.val); + } + + public int pathSum(TreeNode node, int targetSum) { + if (node == null) { + return 0; + } + + return pathSumIncluding(node, targetSum) + + pathSum(node.left, targetSum) + + pathSum(node.right, targetSum); + } +}