当前位置: 首页 > news >正文

LeetCode 题解:112. 路径总和,递归,JavaScript,详细注释

原题链接:

112. 路径总和

解题思路:

  1. 如果求根节点到叶子节点的路径上的节点值之和,假设共有3个节点,那么写成计算式是val1 + val2 + val3 = sum
  2. 那么将计算式转换就可以得到val3 = sum - val1 - val2
  3. 也就是说,问题可以从求和转换为,每向下查找一层节点,就将求和减去当前节点的值,最后只要判断叶子节点的值val3,是否和最后sum - val1 - val2相等即可
  4. 需要特别判断的是:二叉树为空,此时无值,返回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)
};
http://www.lryc.cn/news/351197.html

相关文章:

  • Spring (15)Spring Boot的自动配置是如何工作的
  • 【机器学习】—机器学习和NLP预训练模型探索之旅
  • 54. UE5 RPG 增加伤害类型
  • llama3 微调教程之 llama factory 的 安装部署与模型微调过程,模型量化和gguf转换。
  • C++三剑客之std::any(二) : 源码剖析
  • 【C语言】8.C语言操作符详解(2)
  • vivado 物理约束KEEP_HIERARCHY
  • Linux 三十六章
  • ntsd用法+安装包
  • Nacos 微服务管理
  • Kubernetes集群上的Etcd备份和恢复
  • 创建型模式 (Python版)
  • ​​​【收录 Hello 算法】9.4 小结
  • MYSQL数据库基础语法
  • R实验 参数检验(二)
  • 【Linux】进程信号及相关函数/系统调用的简单认识与使用
  • Spring (14)什么是Spring Boot
  • 区间预测 | Matlab实现CNN-KDE卷积神经网络结合核密度估计多置信区间多变量回归区间预测
  • Java集合框架全景解读:从源码到实践精通指南
  • Python | Leetcode Python题解之第107题二叉树的层序遍历II
  • H4vdo 台湾APT-27视频投放工具
  • 数据结构(树)
  • HTML静态网页成品作业(HTML+CSS)——川西旅游介绍网页(2个页面)
  • MySQL数据库单表查询中查询条件的写法
  • SQL靶场搭建
  • Cocos Creator 帧动画播放组件制作详解
  • 基于STM32控制的双轮自平衡小车的设计
  • Dijkstra算法在《庆余年》中的应用:范闲的皇宫之旅
  • HTML静态网页成品作业(HTML+CSS)——利物浦足球俱乐部介绍网页设计制作(5个页面)
  • mac 查看占用80端口的命令