NOTE
路径总和3
路径总和3的 LeetCode 解题笔记。
这是历史学习笔记,可能存在过时或不完整的理解。
1. 题目描述
给定一个二叉树,它的每个结点都存放着一个整数值。
找出路径和等于给定数值的路径总数。
路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。
二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。
2. 思路
- 思路一
- 递归
- 包含root节点和不包含root节点
3. 实现
3.1. 递归
func pathSum(root *TreeNode, sum int) int {
if root == nil {
return 0
}
return pathSumDFS(root, sum) + pathSum(root.Left, sum) + pathSum(root.Right, sum)
}
func pathSumDFS(root *TreeNode, sum int) int {
if root == nil {
return 0
}
count := 0
if root.Val == sum {
count += 1
}
count += pathSumDFS(root.Left, sum-root.Val)
count += pathSumDFS(root.Right, sum-root.Val)
return count
}
讨论
使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看