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
};
标签:
力扣
, 力扣hot100-js
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人