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
}
相关推荐
leoufung9 分钟前
LeetCode 322. Coin Change:从错误思路到正确一维 DP
算法·leetcode·职场和发展
爱编程的小吴43 分钟前
【力扣练习题】热题100道【哈希】560. 和为 K 的子数组
算法·leetcode·哈希算法
Swift社区1 小时前
LeetCode 463 - 岛屿的周长
算法·leetcode·职场和发展
胡萝卜的兔1 小时前
go-zero rpc 分布式 微服务
分布式·rpc·golang
POLITE31 小时前
Leetcode 240. 搜索二维矩阵 II JavaScript (Day 9)
javascript·leetcode·矩阵
leoufung1 小时前
LeetCode 64. Minimum Path Sum 动态规划详解
算法·leetcode·动态规划
一起养小猫1 小时前
LeetCode100天Day7-移动零与搜索插入位置
数据结构·算法·leetcode·指针
Tony Bai10 小时前
高并发后端:坚守 Go,还是拥抱 Rust?
开发语言·后端·golang·rust
在风中的意志15 小时前
[数据库SQL] [leetcode-584] 584. 寻找用户推荐人
数据库·sql·leetcode
毅炼15 小时前
hot100打卡——day08
java·数据结构·算法·leetcode·深度优先