437. 路径总和 III(中)
题目
-
给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。
路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。

题解:dfs+递归
var pathSum = function(root, targetSum) {
//根节点为空
if(root === null) return 0
let cnt = 0 //计数
//dfs
var dfs=(node, currentSum)=>{
//当前节点是叶子节点时为出口
if(node === null) return
//更新当前路径的和
currentSum+=node.val
//如果路径和等于目标值,计数加1
if(currentSum === targetSum){
cnt++
}
//递归左右
dfs(node.left,currentSum)
dfs(node.right,currentSum)
}
//从根节点开始进行dfs
dfs(root,0)
//递归左右子树,累加计数
cnt += pathSum(root.left,targetSum)
cnt += pathSum(root.right,targetSum)
return cnt
};
浙公网安备 33010602011771号