题解 | #二叉树中和为某一值的路径(一)#
二叉树中和为某一值的路径(一)
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
};