題目大意
給定一個二叉樹,它的每個結(jié)點(diǎn)都存放著一個整數(shù)值。
找出路徑和等于給定數(shù)值的路徑總數(shù)。
路徑不需要從根節(jié)點(diǎn)開始,也不需要在葉子節(jié)點(diǎn)結(jié)束,但是路徑方向必須是向下的(只能從父節(jié)點(diǎn)到子節(jié)點(diǎn))。
二叉樹不超過1000個節(jié)點(diǎn),且節(jié)點(diǎn)數(shù)值范圍是 [-1000000,1000000] 的整數(shù)。
示例:

image.png
方法:遞歸法
public int pathSum(TreeNode root, int sum) {
if(root==null) return 0;
return paths(root,sum)+pathSum(root.left,sum)+pathSum(root.right,sum);
}
private int paths(TreeNode root,int sum) {
if(root == null) return 0;
int res = 0;
if(root.val == sum)
res += 1;
res += paths(root.left,sum-root.val);
res += paths(root.right,sum-root.val);
return res;
}
運(yùn)行時間17ms,77.24%。