做流量网站,指定词整站优化,wordpress 热门文章调用,成都软件网站开发原题链接#xff1a;
112. 路径总和
解题思路#xff1a;
如果求根节点到叶子节点的路径上的节点值之和#xff0c;假设共有3个节点#xff0c;那么写成计算式是val1 val2 val3 sum那么将计算式转换就可以得到val3 sum - val1 - val2也就是说#xff0c;问题可以从…原题链接
112. 路径总和
解题思路
如果求根节点到叶子节点的路径上的节点值之和假设共有3个节点那么写成计算式是val1 val2 val3 sum那么将计算式转换就可以得到val3 sum - val1 - val2也就是说问题可以从求和转换为每向下查找一层节点就将求和减去当前节点的值最后只要判断叶子节点的值val3是否和最后sum - val1 - val2相等即可需要特别判断的是二叉树为空此时无值返回false
/*** param {TreeNode} root* param {number} targetSum* return {boolean}*/
var hasPathSum function(root, targetSum) {// 如果二叉树为空if (!root) return false// 如果当前节点没有子节点它就是叶子节点只要判断root.val targetSumif (!root.left !root.right) return root.val targetSum// 每一层节点都将targetSum减去root.val最后一层只要对比叶子节点的值是否等于targetSum// 最后将结果逐层向上返回return hasPathSum(root.left, targetSum - root.val) || hasPathSum(root.right, targetSum - root.val)
};