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

ops/2024/10/10 15:54:37/

原题链接:

112. 路径总和

解题思路:

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

相关文章

PyTorch Conv2d 前向传递中发生了什么?

在PyTorch中,nn.Conv2d 是一个用于二维卷积操作的模块。当你对一个输入张量(通常是一个四维的,形状为 [batch_size, channels, height, width])调用 forward 方法(或直接使用模块作为函数调用)时,Conv2d 会执行一系列的计算来产生输出张量。 以下是 Conv2d 前向传递中发…

NIO的ByteBuffer和Netty的ByteBuf的性能

在讨论Java NIO的ByteBuffer与Netty的ByteBuf的性能时,需要考虑几个主要的因素,因为性能表现并不是绝对的,而是依赖于具体的使用场景。Netty的ByteBuf设计更加现代,针对网络编程的需求进行了优化,包含了许多ByteBuffer…

C++ RPC ORM 高速解析

支持所有常用编程语 https://capnproto.org/GitHub - capnproto/capnproto: Capn Proto serialization/RPC system - core tools and C library https://capnproto.org/capnproto-c-win32-1.0.2.zip 常用命令: capnp help capnp compile -oc myschema.capn…

LeeCode 3165 线段树

题意 传送门 LeeCode 3165 不包含相邻元素的子序列的最大和 题解 考虑不含相邻子序列的最大和,在不带修改的情况下容易想到,以最后一个元素是否被选取为状态进行DP。从线性递推的角度难以处理待修改的情况。 从分治的角度考虑,使用线段树…

Mac 安装 git

文章目录 前言一、介绍二、下载三、验证四、配置五、Git常用命令六、git提交和撤销工作流程代码提交和提交同步代码撤销和撤销同步 FAQ1.homebrew 下载解决方法一(强烈推荐):解决方法二: 总结 前言 Git 是一个开源的分布式版本控…

NLP(18)--大模型发展(2)

前言 仅记录学习过程,有问题欢迎讨论 Transformer结构: LLM的结构变化: Muti-head 共享: Q继续切割为muti-head,但是K,V少切,比如切为2个,然后复制到n个muti-head减少参数量,加速训练 atte…

STM32无源蜂鸣器播放音乐

单片机:STM32F407ZGT6 开发软件:MDKSTM32CubeMX 文章目录 前言一、找一篇音乐的简谱二、确定音调三、确定节拍四、使用STM32CubeMX生成初始化代码五、代码分析 前言 本实验使用的是低电平触发的无源蜂鸣器 无源蜂鸣器是指没有振荡源的蜂鸣器&#xff0…