在递归函数Recursion
中,存在一个错误的地方:
Recursion(root.Left, targetSum, 0)
应该改为:
Recursion(root.Left, targetSum, curSum)
修正后的代码如下所示:
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
var result int
func Recursion(root *TreeNode, targetSum, curSum int) {
if root == nil {
return
}
curSum += root.Val
if curSum == targetSum {
result++
}
Recursion(root.Left, targetSum, curSum)
Recursion(root.Left, targetSum, 0)
Recursion(root.Right, targetSum, curSum)
Recursion(root.Right, targetSum, 0)
}
func pathSum(root *TreeNode, targetSum int) int {
result = 0
Recursion(root, targetSum, 0)
return result
}
这样修正后,函数应该能够正确计算路径和等于目标值的路径数量。
内容由零声教学AI助手提供,问题来源于学员提问