leetcode112. 路径总和

Leetcode 112:路径总和(最详细的解法!!!) 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 ... 阅读详情

题目

给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。

说明: 叶子节点是指没有子节点的节点。

示例:
给定如下二叉树,以及目标和 sum = 22,

              5
             / \
            4   8
           /   / \
          11  13  4
         /  \      \
        7    2      1

返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。

实现

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    bool hasPathSum(TreeNode* root, int sum) {
        if (root == NULL) return false;
        int res = 0;
        int flag = 0;
        func(root, sum, res, flag);
        return flag;
    }
    void func(TreeNode* root, int sum, int res, int& flag) {
        res += root->val;
        if (root->left == NULL && root->right == NULL) {
            if (res == sum) {
                flag = 1;
                return;
            }
        } 
        if (root->left != NULL) {
            func(root->left, sum, res, flag);
        }
        if (root->right != NULL) {
            func(root->right, sum, res, flag);
        }
    }
};
力扣(LeetCode) 112: 路径总和 - 解法思路 给定一个二叉树的根节点root和一个整数targetSum,如果树中存在根到叶子的路径,使得路径上所有节点值的和等于targetSum,则返回true。叶子是指没有子节点的节点。从目标总和中减去当前节点的值,然后递归检查任一子树是否有剩余总和的路径。当到达叶子时,检查其值是否等于剩余目标总和。递归解决方案通常因其简单性和与树结构的自然匹配而更受欢迎。 阅读详情

相关推荐

【简单】力扣算法题解析LeetCode112:路径总和

题目要求判断二叉树中是否存在根节点到叶子节点的路径,使得路径上的节点值之和等于给定的目标值。使用深度优先搜索(DFS)递归遍历所有路径:若当前节点为空返回false;若是叶子节点则检查剩余目标值是否等于节点值;否则递归检查左右子树。时间复杂度O(N),空间复杂度O(H)。代码通过递归实现,优化了短路逻辑以减少冗余计算。示例分析验证了算法的正确性。

ylumwd的博客 743

leetcode-112:路径总和

LC 路径总和题目解题方法一:广度优先搜索方法二:深度优先搜素 题目 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。 叶子节点 是指没有子节点的节点。 示例 1 输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22 输出:true 示例 2: 输入:root = [1,2,3], targ

菊头蝙蝠的博客 881

Leetcode 112: 路径总和

使用递归实现,树的递归逻辑清晰。判断叶子节点时,特别强调路径和条件。时间复杂度和空间复杂度分析简洁明了,边界处理完整。通过递归方法,你可以快速实现并解决问题,同时展示对二叉树递归的掌握,非常适合面试场景!

互联网架构师笔记 1005

LeetCode112-路径总和

昨天晚上和我姐视频的时候 一个小孩子从大门走进来 看到我之后 大步向我跑过来 并且不停的喊:爸爸,爸爸… 我全程目瞪口呆+尬笑 现在想想 当时应该大声的回答:诶 111-路径总和 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明:叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和sum = 22, 5...

飞奔的菜猪的博客 270

【Codex Sandbox 与审批机制:小白也能看懂的实用教程】

这篇教程介绍了Codex工具中的沙盒(Sandbox)和审批(Approvals)机制,帮助用户安全高效地使用Codex协作。沙盒限制Codex访问范围,审批机制则控制敏感操作权限。文章详细讲解了五种常见模式:最安全的安全只读浏览、只读非交互、仓库内编辑、Auto预设和不推荐的YOLO模式。还提供了新手使用路径建议、配置示例和实战场景范式,包括如何测试沙盒行为、不同系统下的实现方式以及常见问题解答。最后附上速查清单,帮助用户快速选择合适的权限组合。

zsr154278963的博客 6702

避坑指南:CST粒子工作室Track Solver常见的5个参数设置错误

本文深入剖析了CST粒子工作室中Track Solver在电子枪仿真时常见的5个关键参数设置错误,包括空间电荷模型选择、发射源定义、材料边界处理、监视器配置及求解器稳定性设置。通过对比错误与正确做法,帮助用户避开陷阱,确保粒子追踪仿真的物理准确性与数值稳定性,从而获得更精准的电子枪仿真结果。

dapp9builder的博客 486

LeetCode 112 路径总和

结果 思路 观察要求我们完成的函数,我们可以归纳出它的功能:询问是否存在从当前节点 root 到叶子节点的路径,满足其路径和为 sum。 假定从根节点到当前节点的值之和为 val,我们可以将这个大问题转化为一个小问题:是否存在从当前节点的子节点到叶子的路径,满足其路径和为 sum - val。 不难发现这满足递归的性质,若当前节点就是叶子节点,那么我们直接判断 sum 是否等于 val 即可(因为路径和已经确定,就是当前节点的值,我们只需要判断该路径和是否满足条件...

一个小孩 409

基于MATLAB实现的克里金插值的代码

参考代码 克里金插值matlab代码 youwenfan.com/contentcsb/81657.html。

jghhh01的博客 480

LeetCode112.路径总和

/** * LeetCode112.路径总和 * * 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 * * 说明: 叶子节点是指没有子节点的节点。 * * 示例: * 给定如下二叉树,以及目标和 sum = 22, * * 5 * / \ * 4 8 * / / \ * 11 1

u013134119的专栏 275

TSMC65nm工艺下Virtuoso仿真gm-id曲线的保姆级教程(含ADE设置详解)

本文提供了一份在TSMC 65nm工艺下使用Cadence Virtuoso绘制gm-id曲线的详细教程。内容涵盖从理解gm/id方法学、搭建仿真环境、深度解析ADE设置,到运行DC仿真、提取数据并生成对数坐标曲线的完整流程。教程重点解析了Virtuoso ADE中的关键设置与常见避坑点,旨在帮助模拟集成电路设计初学者快速掌握这一核心设计工具,为高性能电路设计奠定基础。

grpc6streamer的博客 1171

IgH EtherCAT 从入门到精通:第 4 章 网络设备驱动选型与配置

摘要:本章详细介绍了EtherCAT主站网络设备驱动的选型与配置。IgH EtherCAT Master提供Generic通用驱动和Native原生驱动两种方案:Generic驱动通过Linux Socket接口实现,兼容性强但实时性较差;Native驱动通过修改网卡驱动绕过内核协议栈,具有更低延迟和更小抖动。文章具体分析了e1000/e1000e/igb/igc等Intel网卡驱动以及r8169/8139too等Realtek驱动的配置方法,并提供了驱动选型建议。对于实时性要求高的场景,推荐使用Nativ

从事嵌入式linux android驱动开发,拥有全栈能力 304

leetcode 112 路径总和

leetcode 112 路径总和 题目描述 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...

EngineerHe的博客 751

QT-Creator安装教程(windows)

本文介绍了Qt的下载安装步骤:1)通过镜像源下载安装包;2)运行exe文件时使用命令行参数指定镜像地址;3)在安装过程中选择路径和自定义安装组件,包含QT5和QT6版本的详细安装说明;4)安装后可继续添加扩展包或卸载组件。重点提示了QT6必须勾选的关键组件,并提供了组件管理的操作方法。

qq_53545309的博客 3102

力扣112. 路径总和(递归、迭代)

力扣112. 路径总和(递归、迭代) https://leetcode-cn.com/problems/path-sum/ 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明:叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 /...

小麦China的博客 276

ZED双目相机环境配置

ZED SDK 安装文件夹中有一个 Python 脚本(get_python_api.py),可以自动检测操作系统、CUDA 和 Python 版本并下载相应的预编译 Python API 包(pyzed)。安装SDK成功后,我们进入ZED SDK文件夹中的tools子文件夹,运行ZED Explorer.exe 以及 ZED Depth Viewer.exe,查看ZED相机是否能正常启用工作。在本例中,我们简单地检索ZED相机的序列号:打开 ZED相机,然后打印其序列号,然后关闭相机。

qq_53545309的博客 2134

DAB协议解读ETSI TS 103 461

数字信号广播( Digital Audio Broadcasting 简称DAB)是继AM、FM传统模拟广播之后的第三代广播--数字信号广播,它提供了接近CD质量的声音,广播及商机无限的附加数据服务,具有抗噪声、抗干扰、抗电波传播衰落、适合高速移动接收等优点,保证固定、携带及移动时接收信号的质量。DAB的原始版本使用MP2音频编解码器。该系统的升级版本于2007年2月发布,称为DAB+,它使用基于改进的离散余弦变换(MDCT)的HE-AACv2(AAC+)音频编解码器。

qflook的博客 4477

LeetCode第112题_路径总和

给你二叉树的根节点root和一个表示目标和的整数targetSum。判断该树中是否存在的路径,这条路径上所有节点值相加等于目标和targetSum。如果存在,返回true;否则,返回false。是指没有子节点的节点。

qq_40263592的博客 1383

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Leetcode112 路径总和 C++,Java,Python

Leetcode112 路径总和 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/path-sum/ 博主Github:https://github.com/GDUT-Rp/LeetCode 题目: 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节...

Rp的博客 255

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

leetcode112-路径总和

不难发现这满足递归的性质,若当前节点就是叶子节点,那么我们直接判断 sum 是否等于 val 即可(因为路径和已经确定,就是当前节点的值,我们只需要判断该路径和是否满足条件)。,我们可以将这个大问题转化为一个小问题:是否存在从当前节点的子节点到叶子的路径,满足其路径和为。首先我们可以想到使用广度优先搜索的方式,记录从根节点到当前节点的路径和,以防止重复计算。这样我们使用两个队列,分别存储将要遍历的节点,以及根节点到这些节点的路径和即可。假定从根节点到当前节点的值之和为。是指没有子节点的节点。

冲出仁川,走出马德里,故事还会再继续 536

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

力扣第112题:路径总和

给定一个二叉树和一个目标和,判断该树中是否存在从根节点到叶子节点的路径,使得路径上的节点值之和等于给定的目标和。是指没有子节点的节点。

weixin_48941116的博客 784

LeetCode 112. 路径总和 | Python

使用递归、广度优先搜索的思路,解决《112. 路径总和》问题

"大梦三千秋的博客 977

LeetCode 力扣 112. 路径总和

题目描述(简单难度) 给定一个sum,判断是否有一条从根节点到叶子节点的路径,该路径上所有数字的和等于sum。 解法一 递归 这道题其实和 111 题 是一样的,大家可以先看 111 题 的分析,这道题无非是把 111 题 递归传递的depth改为了sum的传递。 如果不仔细分析题目,代码可能会写成下边的样子。 public boolean hasPathSum(TreeNode root, ...

wind_liang的博客 878

LeetCode 112. 路径总和

🌈🌈😄😄 欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 112. 路径总和,做好准备了么,那么开始吧。 🌲🌲🐴🐴

weixin_62275996的博客 682

112. 路径总和 - 力扣(LeetCode)

依旧外部变量记录sum,当等于targetSum并且是叶子节点是就设置答案,前序位置放进入节点时加入该节点值,后序位置放离开该节点时减去该节点值。这里使用深度优先遍历更简单一些,广度的话要同时多个枝条的总值,最后再检查一遍,太麻烦了。树的遍历有两种:1. 深度优先遍历 2. 广度优先遍历。深度呢,就是一条遍历完,去另外一条,适合这种有关单个枝条的题目。属于遍历一遍可以得到答案的题,树的遍历一般都是通过递归来实现。

xxm919的博客 236

【LeetCode】[112] 路径总和

考察DFS /* * @lc app=leetcode.cn id=112 lang=java * * [112] 路径总和 * * https://leetcode-cn.com/problems/path-sum/description/ * * algorithms * Easy (44.17%) * Total Accepted: 13.9K * Total Su...

Watson的博客 327
上一篇: leetcode113. 路径总和 II
下一篇: leetcode105. 从前序与中序遍历序列构造二叉树
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值