1、题目
2、实现
(1)思路
(2)代码
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @param {number} targetSum
* @return {boolean}
*/
var hasPathSum = function(root, targetSum) {
// 如果树为空,说明不存在根节点到叶节点的路径,返回false
if(root === null) {
return false;
}
// 如果是叶子结点,判断sum和val是否相等即可
if(root.left === null && root.right === null) {
return targetSum === root.val;
}
// 如果不是叶节点,就判断左右子树是否满足条件
return hasPathSum(root.left, targetSum - root.val) || hasPathSum(root.right, targetSum - root.val);
};
3、参考