Golang | Leetcode Golang题解之第437题路径总和III

题目:

题解:

Go 复制代码
func pathSum(root *TreeNode, targetSum int) (ans int) {
    preSum := map[int64]int{0: 1}
    var dfs func(*TreeNode, int64)
    dfs = func(node *TreeNode, curr int64) {
        if node == nil {
            return
        }
        curr += int64(node.Val)
        ans += preSum[curr-int64(targetSum)]
        preSum[curr]++
        dfs(node.Left, curr)
        dfs(node.Right, curr)
        preSum[curr]--
        return
    }
    dfs(root, 0)
    return
}
相关推荐
_日拱一卒几秒前
LeetCode:25K个一组翻转链表
算法·leetcode·链表
techdashen几秒前
Go 标准库 JSON 包迎来重大升级:encoding/json/v2 实验版来了
开发语言·golang·json
小欣加油5 分钟前
leetcode2078 两栋颜色不同且距离最远的房子
数据结构·c++·算法·leetcode·职场和发展
我真不是小鱼10 分钟前
cpp刷题打卡记录30——轮转数组 & 螺旋矩阵 & 搜索二维矩阵II
数据结构·c++·算法·leetcode
帅小伙―苏2 小时前
力扣42接雨水
前端·算法·leetcode
银色火焰战车2 小时前
浅析golang中的垃圾回收机制(GC)
java·jvm·golang
6Hzlia2 小时前
【Hot 100 刷题计划】 LeetCode 287. 寻找重复数 | C++ 数组判环 (快慢指针终极解法)
c++·算法·leetcode
jieyucx4 小时前
Go 语言零基础入门:编写第一个 Hello World 程序
开发语言·后端·golang
jieyucx4 小时前
Go 语言基础语法:变量、常量与数据类型详解
开发语言·后端·golang
penngo7 小时前
用 Claude Code 开发多人猜拳游戏:Go 语言实践
开发语言·游戏·golang