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
}
相关推荐
XMYX-06 小时前
17 - Go 通道 Channel 底层原理 + 实战详解
开发语言·golang
cpp_25016 小时前
P2347 [NOIP 1996 提高组] 砝码称重
数据结构·c++·算法·题解·洛谷·noip·背包dp
加农炮手Jinx7 小时前
LeetCode 146. LRU Cache 题解
算法·leetcode·力扣
加农炮手Jinx7 小时前
LeetCode 128. Longest Consecutive Sequence 题解
算法·leetcode·力扣
旖-旎7 小时前
递归(汉诺塔问题)(1)
c++·学习·算法·leetcode·深度优先·递归
JAVA学习通7 小时前
励志从零打造LeetCode平台之C端竞赛列表
java·vscode·leetcode·docker·状态模式
莫等闲-8 小时前
代码随想录一刷记录Day31——leetcode56. 合并区间 738.单调递增的数字
数据结构·c++·算法·leetcode
剑挑星河月8 小时前
45.跳跃游戏Ⅱ
数据结构·算法·leetcode
Tisfy9 小时前
LeetCode 3783.整数的镜像距离:数学
数学·算法·leetcode·题解
水蓝烟雨9 小时前
0010.三数之和
数据结构·算法·leetcode