题目描述
思路分析
采用递归的方法,左(右)子树的sum = sum - root.val
。
每次都减去当前的root值,如果左子树或者右子树的节点值等于sum,则说明找到了,返回true,否则当root为空时,退出当前递归,说明找不到,返回false
代码参考
// 传递过来的每一个节点,我们都要思考,当前节点需要做什么,下一步递归条件是什么,退出条件是什么
function hasPathSum (root, sum) {
// 递归退出条件
if (!root) return false
// 叶子节点,且叶子节点符合要求,即为找到了
if (!root.left && !root.right && root.val === sum) return true
// 没有找到,则继续向下递归查找,左子树或右子树有一条符合条件便返回
return hasPathSum(root.left, sum - root.val) || hasPathSum(root.right, sum - root.val)
}
标签:BM29,val,递归,sum,二叉树,return,root,节点,一值
From: https://www.cnblogs.com/zx529/p/17020573.html