112. 路径总和

力扣题目链接(opens new window)

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

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

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

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

class Solution {
public:bool hasPathSum(TreeNode* root, int targetSum) {queue<TreeNode*>node_que;queue<int>val_que;if(!root) return false;node_que.push(root);val_que.push(root->val);while(!node_que.empty()){TreeNode* node = node_que.front();node_que.pop();int tmp = val_que.front();val_que.pop();if(!node->left && !node->right){if(tmp == targetSum) return true;}if(node->left){node_que.push(node->left);val_que.push(tmp + node->left->val);}if(node->right){node_que.push(node->right);val_que.push(tmp + node->right->val);}}return false;}
};

//dfs 

class Solution {
public:bool dfs(TreeNode* root,int count){if(!root) return false;if(!root->left && !root->right && count == 0) return true;if(!root->left && !root->right) return false;if(root->left){count -= root->left->val;if(dfs(root->left,count)) return true;//由子树的情况反映给父节点,如果true,一路上传给根节点。否则一路上传false。count += root->left->val; // 回溯隐藏在递归后面}if(root->right){count -= root->right->val;if(dfs(root->right,count)) return true;count += root->right->val; }return false;}bool hasPathSum(TreeNode* root, int targetSum) {//dfsif(!root) return false;return dfs(root,targetSum-root->val);}
};

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

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

相关文章

Unity中Shader用到的向量的乘积

文章目录 前言一、向量的乘法1、点积2、差积 二、点积&#xff08;结果是一个标量&#xff09;1、数学表示法2、几何表示法 三、叉积1、向量叉积的结果 与 两个相乘的向量互相垂直2、判断结果正负方向的方法&#xff1a;右手法则 前言 Unity中Shader用到的向量的点积 一、向量…

手机能搜到某个wifi,电脑搜不到解决方法(也许有用)

方法一&#xff1a;更新驱动 下载驱动大师、驱动精灵等等驱动软件&#xff0c;更新网卡驱动 方法二 按 win 键&#xff0c;打开菜单 搜索 查看网络连接&#xff08;win11版本是搜这个名字&#xff09; 点击打开是这样式的 然后对 WLAN右击->属性->配置->高级 这…

unittest单元测试框架使用

什么是unittest 这里我们将要用的unittest是python的单元测试框架&#xff0c;它的官网是 25.3. unittest — Unit testing framework — Python 2.7.18 documentation&#xff0c;在这里我们可以得到全面的信息。 当我们写的用例越来越多时&#xff0c;我们就需要考虑用例编写…

如何使用 API 接口获取商品数据,从申请 API 接口、使用 API 接口到实际应用,一一讲解

在当今的数字化时代&#xff0c;应用程序接口&#xff08;API&#xff09;已经成为数据获取的重要通道。API 接口使得不同的应用程序能够方便地进行数据交换&#xff0c;从而促进了信息的广泛传播和利用。在众多的数据源中&#xff0c;商品数据是一个非常重要的领域&#xff0c…

Win/Mac版Scitools Understand教育版申请

这里写目录标题 前言教育版申请流程教育账号申请 前言 上篇文章为大家介绍了Scitools Understand软件&#xff0c;通过领取的反馈来看有很多朋友都想用这个软件&#xff0c;但是我的网盘里只存了windows的pojie版&#xff0c;没有mac版的&#xff0c;我没有去网上找相关的资源…

【Java 进阶篇】数据定义语言(DDL)详解

数据定义语言&#xff08;DDL&#xff09;是SQL&#xff08;结构化查询语言&#xff09;的一部分&#xff0c;它用于定义、管理和控制数据库的结构和元素。DDL允许数据库管理员、开发人员和其他用户创建、修改和删除数据库对象&#xff0c;如表、索引、视图等。在本文中&#x…

tcp/ip协议2实现的插图,数据结构

&#xff08;1&#xff09;以上是插图第2章和3章 的 mbuf 与 ifnet 与 ifaddr 与 le_softc 与 sockaddr_dl结构体 (2) 以下是 二章mbuf的宏和函数和三章函数下 &#xff08;3&#xff09; 以下是 三章接口层的宏和函数上 &#xff08;4&#xff09;4 四章1&#xff1a;以太网接…

Blender 之创建一个简单的笔筒

文章目录 成品图实现步骤 你是不是想创建一个笔筒捏&#xff1f; follow me! 成品图 实现步骤 先添加一个柱体 选中柱体&#xff0c;然后按tab 进入编辑模式 切换到面模式 &#xff08;可以按主键盘的 3 键&#xff09; 分别选中上下面&#xff0c;鼠标右键&#xff0c;选…

【Linux】【网络】传输层协议:UDP

文章目录 UDP 协议1. 面向数据报2. UDP 协议端格式3. UDP 的封装和解包4. UDP 的缓冲区 UDP 协议 UDP传输的过程类似于寄信。 无连接&#xff1a;知道对端的IP和端口号就直接进行传输&#xff0c;不需要建立连接。不可靠&#xff1a;没有确认机制&#xff0c;没有重传机制&am…

接口测试总结

一、了解一下HTTP与RPC 1. HTTP&#xff08;HyperText Transfer Protocol) 说明&#xff1a;超文本传输协议&#xff0c;是互联网上应用最为广泛的一种网络协议。 优点&#xff1a;就是简单、直接、开发方便&#xff0c;利用现成的http协议进行传输。 流程图&#xff1a; 2. R…

第二证券:栽了!这几人操纵市场吃罚单

证监会日前发布一则“罚单”&#xff0c;再次剑指操作商场。 证监会对时任国银新投实践控制人苏剑锋&#xff0c;时任国银新投投研部总监曾帅&#xff0c;时任道尔智控董事长、实践控制人王志刚操作“道尔智控”的行为进行了立案查询、审理&#xff0c;发现上述当事人一同操作…

聚势共赢!爱创科技喜获“腾讯健康年度优秀合作伙伴”!

2023年9月7日—8日&#xff0c;2023腾讯全球数字生态大会在深圳国际会展中心成功举办。来自行业的重磅院士学者、企业代表、生态伙伴等共赴大会&#xff0c;围绕“智变加速&#xff0c;产业焕新”这一活动主题进行了深层次、全方位的交流和探讨&#xff0c;共话大模型时代下数智…

如何制作gif动图gif (多图合成gif、GIF录制软件、视频制作成GIF动图)

文章目录 1 在线制作多图合成gif动画2 GIF录制软件3 将现有的视频 制作成GIF动图 1 在线制作多图合成gif动画 在线制作gif动画链接:https://www.matools.com/gif ①选择需要制作gif动画的图片将其添加 ②调整时间间隔&#xff0c;图片宽高等设置 ③一键生成gif ④下载到本…

阿里云服务器新手教程_省钱购买_配置_搭建网站全教程

阿里云服务器使用教程包括云服务器购买、云服务器配置选择、云服务器开通端口号、搭建网站所需Web环境、安装网站程序、域名解析到云服务器公网IP地址&#xff0c;最后网站上线全流程&#xff0c;阿里云百科分享阿里云服务器详细使用教程&#xff1a; 目录 阿里云服务器使用教…

为什么 0.1 + 0.1 !== 0.2

总结了几个很有意思的基础题目&#xff0c;分享一下。 为什么 0.1 0.1 ! 0.2 看到这个问题&#xff0c;不得不想到计算机中的数据类型&#xff0c;其中浮点数表示有限的精度。那么它就无法精确的表示所有的十进制小数&#xff0c;所以在在某些情况下&#xff0c;浮点数的运算…

基座向量施密特正交化

最近再次细细的阅读了向量施密特正交化&#xff0c;重新系统梳理一下 一、正交基地与向量的正交分解 二、基化成标准正交基&#xff0c;是什么意思 将一个向量空间中的基向量通过某种方式转化为一组标准正交基&#xff0c;是指将原有的基向量进行调整&#xff0c;使得它们满足…

安卓:解决AndroidStudio导出Unity的Apk(APP)出现2个显示图标

用AndroidStudio打开该项目 实现只保留1个app图标 AndroidManifest.xml的改法如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android" package"com.fru…

IO流(字节流与字符流) 和 File对象 详解与使用

IO流 和 File对象 理论概念 为什么需要io流呢&#xff1f; 如上图这些基本数据类型和对象以及列表都是内存中的数据&#xff0c;只要断电或者程序停止&#xff0c;这些数据将会永久消失。 那么如果我需要长久保存一些数据怎么办&#xff1f;(持久化) 那么就需要使用File对象…

C++ - unordered系列关联式容器介绍 - 和 set map 的比较

前言 C - map 和 set 使用介绍_chihiro1122的博客-CSDN博客 C - map 和 set的 例题_chihiro1122的博客-CSDN博客 C - map 和 set 的模拟实现上篇 - 红黑树当中的仿函数 - 红黑树的迭代器实现-CSDN博客、 C - set 和 map 的实现&#xff08;下篇&#xff09;- set 和 map 的迭…

自定义热加载:如何不停机实现核心代码更新

文章目录 1. 常见的几种实现代码热更新的几种方式对于开发环境我们可以使用部署环境1. 使用 Arthas 的 redefine 命令来加载新的 class 文件2. 利用 URLClassLoader 动态加载3. 通过Java的Instrumentation API 也是可以实现的 2. 实现1. ClassScanner扫描目录和加载类2. 定时任…