LeetCode-437-路径总和 III
思路
对每个节点进行遍历,然后再对左右子树进行遍历
代码
class Solution {
int count=0;
public int pathSum(TreeNode root, int sum) {
if(root==null)return 0;
getSum(root,sum);
pathSum(root.left,sum);
pathSum(root.right,sum);
return count;
}
public void getSum(TreeNode root, int sum){
if(root==null)return;
sum-=root.val;
if(sum==0) {
count++;
}//注意这里不能结束,因为可能相互抵消,这个又是新的路径,比如到这里是3=1+2,后面有3=1+2-1+1
getSum(root.left,sum);
getSum(root.right,sum);
}
}