给定一个二叉树和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径
思路:深度遍历,存下路径下来的和就可以了,到叶子节点判断是否相等
package main
/*
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
/**
*
* @param root TreeNode类
* @param sum int整型
* @return bool布尔型
*/
var flag = false
func hasPathSum(root *TreeNode, sum int) bool {
// write code here
if root == nil {
return false
}
getSum(root, 0, sum)
return flag
}
func getSum(root *TreeNode, sum int, targartSum int) {
if root.Right == nil && root.Left == nil {
if sum + root.Val == targartSum {
flag = true
}
return
}
if root.Left != nil {
getSum(root.Left, sum + root.Val, targartSum)
}
if root.Right != nil {
getSum(root.Right, sum + root.Val, targartSum)
}
}