```/*
 * function TreeNode(x) {
 *   this.val = x;
 *   this.left = null;
 *   this.right = null;
 * }
 */

/**
  * 
  * @param root TreeNode类 
  * @param sum int整型 
  * @return bool布尔型
  */
function hasPathSum( root ,  sum ) {
    // write code here
    //如果存在这条路径,那么设想第一层是根节点,第二层是子节点,第二层之后相加的值应为sum-root.val
    //此时递归向下计算,一直到子节点,如果判断相等,则存在路径,否则不存在
    if(root===null){return false}
    //如果存在这么一个叶节点等于sum,则存在路径,返回真
    if(root.val===sum &&root.left===null&&root.right===null){return true} 
    //如果遍历到最后空节点了,说明没有满足条件的路径,根据第一行代码自然返回false
    return hasPathSum( root.left ,  sum-root.val ) || hasPathSum( root.right ,  sum-root.val )
}
module.exports = {
    hasPathSum : hasPathSum
};