一、題目描述
給定一個二叉樹和一個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。
說明: 葉子節點是指沒有子節點的節點。
二、示例
三、思路
二叉樹的方法的話我一般使用的是遞歸的方法,每次經過一個就進行減去當前值的操作,當在葉子節點時看sum是否等於0,返回ture。
四、代碼
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @param {number} sum
* @return {boolean}
*/
var hasPathSum = function(root, sum) {
if(root===null){
return false
}
if(root.left === null && root.right===null){
return (sum-root.val) === 0
}
var left = hasPathSum(root.left,sum-root.val)
var right = hasPathSum(root.right,sum-root.val)
return left || right
};