LeetCode 之 JavaScript 解答第112题 —— 路径总和(Path Sum)
栏目: JavaScript · 发布时间: 5年前
内容简介:Time:2019/4/26Title: Path SumDifficulty: Easy
Time:2019/4/26
Title: Path Sum
Difficulty: Easy
Author: 小鹿
题目:Path Sum(路径总和)
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.
Note:A leaf is a node with no children.
说明:叶子节点是指没有子节点的节点。
示例:给定如下二叉树,以及目标和 sum = 22
,
Example:
Given the below binary tree and sum = 22
,
5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1
return true, as there exist a root-to-leaf path 5->4->11->2
which sum is 22.
Solve:
▉ 问题分析
2)第一个想法就是一个个进行相加,将每条路径相加完成之后,判断是否达到当前目标值? 3)但是 (2)的解决方案的想法要用到递归上,需要转变一下思路,毕竟我们要用递归的编程技巧来解决,所以思维需要稍微转变一下(将问题化成子问题,子问题与总问题有相同的解决思路)。
▉ 算法思路
2)在(1)中,将问题化成子问题,然后子问题和问题有相同的解决思路,那么就可以使用递归来解决。 3)用 flag 做标识,一旦满足路径之和等于目标值,就让改变 flag 的状态。
▉ 代码实现
var hasPathSum = function(root, sum) { let flag = false; // 判断当前二叉树是否等于 null if(root == null) return false; dfs = (root,sum)=>{ // 如果当前结点为 null ,返回 false if(root == null) return false; // 判断左右子树是否为 null if(root.left == null && root.right == null){ // 如果不为 null,就判断当前的值和最后一个结点值是否相同 if(sum == root.val){ flag = true; return; } } // 递归搜索所有路径 dfs(root.left,sum - root.val) dfs(root.right,sum - root.val) } dfs(root,sum) return flag; };
欢迎一起加入到 LeetCode 开源 Github 仓库,可以向 me 提交您其他语言的代码。在仓库上坚持和小伙伴们一起打卡,共同完善我们的开源小仓库!
Github: https://github.com/luxiangqia...
欢迎关注我个人公众号:「一个不甘平凡的码农」,记录了自己一路自学编程的故事。
以上所述就是小编给大家介绍的《LeetCode 之 JavaScript 解答第112题 —— 路径总和(Path Sum)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- LeetCode - 112 - 路径总和(path-sum)
- php – 使用除以总和的正确总和,抵消舍入误差
- LeetCode39.组合总和 JavaScript
- N的总和列出了元素方式的python
- AI只是数据科学部件的总和,我们的AI必须做什么?
- LeetCode 599:两个列表的最小索引总和 Minimum Index Sum of Two Lists
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
jQuery 技术内幕
高云 / 机械工业出版社 / 2014-1-1 / 99元
本书首先通过“总体架构”梳理了各个模块的分类、功能和依赖关系,让大家对jQuery的工作原理有大致的印象;进而通过“构造 jQuery 对象”章节分析了构造函数 jQuery() 的各种用法和内部构造过程;接着详细分析了底层支持模块的源码实现,包括:选择器 Sizzle、异步队列 Deferred、数据缓存 Data、队列 Queue、浏览器功能测试 Support;最后详细分析了功能模块的源码实......一起来看看 《jQuery 技术内幕》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
RGB HSV 转换
RGB HSV 互转工具