LeetCode_二叉树_简单_112.路径总和

news2024/10/7 10:21:51

目录

  • 1.题目
  • 2.思路
  • 3.代码实现(Java)

1.题目

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

叶子节点是指没有子节点的节点。

示例 1:

在这里插入图片描述

输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22
输出:true
解释:等于目标和的根节点到叶节点路径如上图所示。

示例 2:

在这里插入图片描述

输入:root = [1,2,3], targetSum = 5
输出:false
解释:树中存在两条根节点到叶子节点的路径:
(1 --> 2): 和为 3
(1 --> 3): 和为 4
不存在 sum = 5 的根节点到叶子节点的路径。

示例 3:
输入:root = [], targetSum = 0
输出:false
解释:由于树是空的,所以不存在根节点到叶子节点的路径。

提示:
树中节点的数目在范围 [0, 5000] 内
-1000 <= Node.val <= 1000
-1000 <= targetSum <= 1000

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/path-sum

2.思路

(1)递归
观察要求我们完成的函数,我们可以归纳出它的功能:询问是否存在从当前节点 root 到叶子节点的路径,满足其路径和为 sum。假定从根节点到当前节点的值之和为 val,我们可以将这个大问题转化为一个小问题:是否存在从当前节点的子节点到叶子的路径,满足其路径和为 sum - val

不难发现这满足递归的性质,若当前节点就是叶子节点,那么我们直接判断 sum 是否等于 val 即可(因为路径和已经确定,就是当前节点的值,我们只需要判断该路径和是否满足条件)。若当前节点不是叶子节点,我们只需要递归地询问它的子节点是否能满足条件即可。

相关题目:
LeetCode_二叉树_中等_113.路径总和 II
LeetCode_二叉树_前缀和_中等_437.路径总和 III

3.代码实现(Java)

//思路1————递归
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public boolean hasPathSum(TreeNode root, int sum) {
        if (root == null) {
            return false;
        }
        if (root.left == null && root.right == null) {
            return sum == root.val;
        }
        return hasPathSum(root.left, sum - root.val) || hasPathSum(root.right, sum - root.val);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/516497.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【KVM虚拟化】· virsh文件管理

目录 &#x1f341;离线访问工具应用场景 &#x1f341;离线命令 &#x1f342;virt-inspector &#x1f342;virt-cat &#x1f342;virt-edit &#x1f342;virt-df &#x1f342;virt-copy-out &#x1f342;virt-copy-in &#x1f342;guestfish &#x1f342;guestmount &…

TCP协议补充实验

目录 一、理解CLOSE_WAIT状态 二、理解TIME_WAIT状态 解决TIME_WAIT状态引起的bind失败的方法 三、 理解listen的第二个参数 四、SYN洪水 五、TCP、UDP对比 六、优化UDP实现可靠传输&#xff08;面试题&#xff09; 一、理解CLOSE_WAIT状态 当客户端和服务器在进行TCP通…

记录--Vue3+TS(uniapp)手撸一个聊天页面

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 Vue3TS(uniapp)手撸一个聊天页面 前言 最近在自己的小程序中做了一个智能客服&#xff0c;API使用的是云厂商的API&#xff0c;然后聊天页面...嗯&#xff0c;找了一下关于UniApp(vite/ts)版本的好像不…

Linux常用命令——ifconfig命令

在线Linux命令查询工具 ifconfig 配置和显示Linux系统网卡的网络参数 补充说明 ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息&#xff0c;在网卡重启后机器重启后&#xff0c;配置就不存在。要想将上述的配置信息永远的存的电…

如何用Facebook为你的跨境电商店铺进行引流?

对于跨境电商店铺来说&#xff0c;引流客户代表着潜在的商业机会和利润。当更多潜在客户访问你的店铺并下单购买产品时&#xff0c;这将增加你的销售额和利润&#xff0c;并帮助你的品牌影响力不断扩大。 一、Facebook广告付费玩法 1.创建一个Facebook商业页面&#xff1a;首先…

首发 | 人工智能赋能的未来作战构想(上): 海上作战篇

源自&#xff1a;中国指挥与控制学会 ▲图1&#xff1a;报告封面和封底 一、人工智能赋能改变战争形态 ▲图2&#xff1a;以AI赋能万物互联 二、人工智能赋能的海上作战 ▲图3&#xff1a;海上作战要保持持续有效的火力输出 &#xff08;一&#xff09;海上防御作战构想 ▲图4&…

MODBUS协议下,触摸屏与PLC能否实现无线通讯?

想要实现触摸屏与PLC之间的MODBUS无线通讯&#xff0c;就需要一个满足这两个设备通讯接口&#xff0c;并可在MODBUS协议下运行的通讯终端作为媒介&#xff0c;搭建起这两者之间的通讯桥梁。如果是使用威纶通触摸屏作为主站&#xff0c;三菱FX5U PLC作为从站&#xff0c;便可采用…

代码随想录-数组

学习《代码随想录》 理论基础什么是数组&#xff1f; 二分查找左闭右闭左闭右开 移除元素暴力法双指针法 长度最小的子数组暴力法滑动窗口 螺旋矩阵 理论基础 什么是数组&#xff1f; 数组是存储在连续内存空间上的相同类型数据的集合。 二分查找 有两种解法&#xff1a;左闭…

spring6概述

Spring6要求JDK最低版本是JDK17 Spring是什么&#xff1f; Spring 是一款主流的 Java EE 轻量级开源框架 &#xff0c;Spring 由“Spring 之父”Rod Johnson 提出并创立&#xff0c;其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开…

阿里云李钟:弹性计算控制系统团队的提效之路

2023 年 3 月 25 日&#xff0c;“城市领航之夜第一期”活动在上海举行&#xff0c;阿里云弹性计算控制系统技术架构负责人李钟出席了本次活动并带来了《弹性计算控制系统团队提效之路》的主题演讲&#xff0c;为大家详细分享了阿里云弹性计算控制系统团队所面临的挑战、如何通…

计算机毕业论文选题推荐|软件工程|系列五

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于(***语言)遥感图像的居民…

言之画: AI绘画平台

【产品介绍】 言之画是出门问问推出的AI绘画平台。支持二次元、蒸汽朋克、插画等 8 种创作风格。用户只需输入文字&#xff0c;「言之画」就能一次性生成 8 张光影逼真、细节丰富的 2K 高分辨率图像。 除了以文生图&#xff0c;它还拥有以图生图、动图生成、个性头像生成等 AI …

MATLAB 之 常用内部函数,运算,字符串和结构数据与单元数据

文章目录 一、常用内部函数1. 常用数学函数2. 矩阵的超越函数2.1 矩阵平方根2.2 矩阵对数2.3 矩阵指数2.4 普通矩阵函数 二、MATLAB 运算1. 算术运算1.1 基本算术运算1.2 点运算 2. 关系运算3. 逻辑运算 三、字符串1. 字符串的表示2. 字符串的操作2.1 字符串的执行2.2 字符串与…

ChatGPT下的自动化工具Auto-GPT、AgentGPT、BabyAGI和GodMode

ChatGPT 对于一个大目标来说&#xff0c;他是不知道怎么一步一步的帮我们构建出来。有了Auto-GPT、AgentGPT、BabyAGI和GodMode 这些自动化工具&#xff0c;我们只需要输入一个大目标&#xff0c;这些自动化工具能够帮我们一步一步轻松实现。 1.Auto-GPT 网址&#xff1a;htt…

C/C++每日一练(20230512) 成绩打印、补齐数组、水仙花数

目录 1. 成绩打印 ※ 2. 按要求补齐数组 &#x1f31f;&#x1f31f;&#x1f31f; 3. 水仙花数 ※ &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 成绩打印 一个班有10个同学&am…

airserver7.2.7最新中文版下载及功能介绍

最近开会打算把手机投屏到自己的Mac上演示用&#xff0c;于是就打算用下听了很久好用但是一值没有使用的AirServer!十分简单的操作就可以完美的投屏到Mac电脑&#xff0c;而且不用像Mac自带的QuickTime用线连接手机!它可以把AirPlay / AirTunes上的音频、视频、照片、幻灯片还有…

母亲节祝福html源码,母亲节祝福html代码,母亲节表白妈妈代码,母亲节祝福网页代码

母亲节祝福html源码&#xff0c;母亲节祝福html代码&#xff0c;母亲节表白妈妈代码&#xff0c;母亲节祝福网页代码 运行截图 核心代码&#xff1a; <!DOCTYPE HTML> <html lang"zh-Hans"> <head><meta charset"utf-8"><meta…

我们选择护眼台灯的标准是什么?护眼台灯的国家标准

小时候在学校&#xff0c;父母跟老师经常强调“眼睛是心灵的窗户”要保护好眼睛&#xff0c;不管是在学校上学还是在家写作业时&#xff0c;都会很突然的听见“头抬高点”、“眼睛离远点”等类似的劝导&#xff0c;刚开始还不以为然&#xff0c;直到视力下降&#xff0c;带上了…

ctf_BUUCTF_web_总结(待更新)

文章目录 SQL注入文件上传漏洞文件包含漏洞php反序列化RCE模板安全问题&#xff08;SSTI&#xff09;XXE代码审计杂七杂八的知识点正则表达式CTF做题总结 SQL注入 [极客大挑战 2019]EasySQL[SUCTF 2019]EasySQL[强网杯 2019]随便注[极客大挑战 2019]BabySQL[BJDCTF2020]Easy MD…

雪浪云算力开发者大赛

1赛题背景 汽车生产工艺复杂&#xff0c;一辆汽车的制造需要完成焊装、涂装、总装三大工艺&#xff0c; 经过焊装车间、涂装车间、总装车间。各车间存在上下游关联关系&#xff0c;每个车间有自己的优化排序目标&#xff0c;需要综合考虑多种复杂的排序规则及工艺约束&#xf…