题解 | #二叉树中和为某一值的路径(一)#

二叉树中和为某一值的路径(一)

http://www.nowcoder.com/practice/508378c0823c423baa723ce448cbfd0c

```/*
 * 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
};
全部评论

相关推荐

10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
赏个offer求你了:友塔HR还专门加我告诉我初筛不通过😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务