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
};
posted @   Frommoon  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示