给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。

叶子节点 是指没有子节点的节点。

思路

  1. 递归传递 remain = targetSum - curVal
1
2
3
4
5
6
7
8
9
10
var hasPathSum = function (root, targetSum) {
if (!root) {
return false
}
const remain = targetSum - root.val
if (!root.left && !root.right) {
return remain === 0
}
return hasPathSum(root.left, remain) || hasPathSum(root.right, remain)
}