NOTE

路径总和3

路径总和3的 LeetCode 解题笔记。

Data Structures & Algorithms创建于 更新于 约 1 分钟读完historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 题目描述

给定一个二叉树,它的每个结点都存放着一个整数值。

找出路径和等于给定数值的路径总数。

路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。

二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。

2. 思路

  1. 思路一
    • 递归
    • 包含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
}

4. 参考

讨论

使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看