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
}
相关推荐
玉树临风ives6 分钟前
atcoder ABC436 题解
c++·算法·leetcode·atcoder·信息学奥赛
圣保罗的大教堂9 分钟前
leetcode 2110. 股票平滑下跌阶段的数目 中等
leetcode
patrickpdx10 分钟前
leetcode:相等的有理数
算法·leetcode·职场和发展
hn小菜鸡39 分钟前
LeetCode 1971.寻找图中是否存在路径
算法·leetcode·职场和发展
Han.miracle1 小时前
数据结构与算法--007三数之和(medium)
算法·leetcode·排序算法
锥锋骚年2 小时前
golang 发送内网邮件和外网邮件
开发语言·后端·golang
古城小栈2 小时前
工业互联网:Go + 边缘计算实现设备监控实战
人工智能·golang·边缘计算
令狐囱2 小时前
宝塔docker 运行 go-zero-looklook项目
docker·容器·golang
moxiaoran57532 小时前
Go 语言指针
开发语言·golang
XFF不秃头2 小时前
力扣刷题笔记-下一个排列
c++·笔记·算法·leetcode