https://leetcode-cn.com/problems/path-sum-iii/solution/javajie-fa-shi-jian-100-kong-jian-93-by-xiao-chao-/
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
1.递归:
总路径数目 = 以从根结点出发的路径数目+以从左节点出发的路径数目+以从右节点出发的路径数目
class Solution {
public int pathSum(TreeNode root, int sum) {
if(root==null){
return 0;
}
return findPath(root,sum)
+pathSum(root.left,sum)
+pathSum(root.right,sum);
}
public int findPath(TreeNode root, int sum) {
if(root==null){
return 0;
}
//sum为0时,就刚好找到了该路径!
sum-=root.val;
int left = findPath(root.left,sum);
int right = findPath(root.right,sum);
return sum==0?left+right+1:left+right;
}
}