package main
import . "nc_tools"
/*
 * type TreeNode struct {
 *   Val int
 *   Left *TreeNode
 *   Right *TreeNode
 * }
 */

/**
  * 
  * @param root TreeNode类 
  * @param sum int整型 
  * @return bool布尔型
*/
func hasPathSum( root *TreeNode ,  sum int ) bool {
    // write code here
    if root == nil {
        return false
    }
    var dfs func(root *TreeNode, tmp int) bool
    dfs = func(root *TreeNode, tmp int) bool {
        if root == nil {
            return false
        }
        tmp += root.Val
        if root.Right == nil && root.Left == nil && tmp == sum {
            return true
        }
        return dfs(root.Left, tmp) || dfs(root.Right, tmp )
    }
    return dfs(root, 0)
}