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
}
相关推荐
程序员爱钓鱼1 小时前
跳转语句:break、continue、goto -《Go语言实战指南》
开发语言·后端·golang·go1.19
边跑边掩护1 小时前
LeetCode 648 单词替换题解
算法·leetcode·职场和发展
愚润求学2 小时前
【递归、搜索与回溯】专题一:递归(二)
c++·笔记·算法·leetcode
wang__123005 小时前
力扣2094题解
算法·leetcode·职场和发展
小雅痞6 小时前
[Java][Leetcode middle] 55. 跳跃游戏
java·leetcode
元亓亓亓7 小时前
LeetCode热题100--206.反转链表--简单
算法·leetcode·链表
边跑边掩护7 小时前
LeetCode 373 查找和最小的 K 对数字题解
leetcode
Clown958 小时前
Go语言爬虫系列教程(一) 爬虫基础入门
开发语言·爬虫·golang
爱coding的橙子13 小时前
每日算法刷题 Day3 5.11:leetcode数组2道题,用时1h(有点慢)
算法·leetcode
Dream it possible!17 小时前
LeetCode 热题 100_只出现一次的数字(96_136_简单_C++)(哈希表;哈希集合;排序+遍历;位运算)
c++·leetcode·位运算·哈希表·哈希集合