26 lines
479 B
Go
26 lines
479 B
Go
package q112
|
|
|
|
type TreeNode struct {
|
|
Val int
|
|
Left *TreeNode
|
|
Right *TreeNode
|
|
}
|
|
|
|
func traverse(node *TreeNode, tgtSum, curSum int) bool {
|
|
if node == nil {
|
|
return false
|
|
}
|
|
|
|
sum := curSum + node.Val
|
|
if node.Left == nil && node.Right == nil && sum == tgtSum {
|
|
return true
|
|
}
|
|
return traverse(node.Left, tgtSum, sum) ||
|
|
traverse(node.Right, tgtSum, sum)
|
|
}
|
|
|
|
func hasPathSum(root *TreeNode, targetSum int) bool {
|
|
return traverse(root, targetSum, 0)
|
|
}
|
|
|
|
var _ = hasPathSum
|