leetcode原题:检查子树
题目:
检查子树。你有两棵非常大的二叉树:T1,有几万个节点;T2,有几万个节点。设计一个算法,判断 T2 是否为 T1 的子树。
如果 T1 有这么一个节点 n,其子树与 T2 一模一样,则 T2 为 T1 的子树,也就是说,从节点 n 处把树砍断,得到的树与 T2 完全相同。
注意:这道题与找不同的地方在于“从节点 n 处把树砍断,得到的树与 T2 完全相同”,所以必须要找到叶子节点,这期间的所有节点都相同,才是子树,否则不是子树
示例:
输入:t1 = [1, 2, 3], t2 = [2]
输出:true
输入:t1 = [1, 2, 3,4,5], t2 = [2]
输出:false
解题思路:
1.先递归地找到T1树中与T2的根节点相同的节点
2.再递归地找剩下的节点是否每一个都相等
源代码如下:
class Solution {
public:bool dfs(TreeNode* t1,TreeNode* t2){if(t1==NULL&&t2==NULL) return true;//同时为空,返回trueif(t1==NULL||t2==NULL) return false;//只有一个为空,则一定不相等,返回false//节点值相等 ,继续递归if(t1->val==t2->val){return dfs(t1->left,t2->left)&&dfs(t1->right,t2->right);}//一旦出现不相等的情况,直接返回falseelse return false;}bool checkSubTree(TreeNode* t1, TreeNode* t2) {if(t1==NULL&&t2==NULL) return true;//两颗都是空树,则返回trueif(t1==NULL||t2==NULL) return false;//只有一颗树为空,那么一定不存在子树,返回false//如果T1节点的值与T2的节点值相同,则开始递归的找其他节点是否相等if(t1->val==t2->val){if(dfs(t1,t2)){return true;}}//在T1中找到与T2根节点值相同的节点return checkSubTree(t1->left,t2)||checkSubTree(t1->right,t2);}
};相关文章:
leetcode原题:检查子树
题目: 检查子树。你有两棵非常大的二叉树:T1,有几万个节点;T2,有几万个节点。设计一个算法,判断 T2 是否为 T1 的子树。 如果 T1 有这么一个节点 n,其子树与 T2 一模一样,则 T2 为…...
2023年国赛数学建模思路 - 案例:ID3-决策树分类算法
文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模…...
可视化绘图技巧100篇进阶篇(七)-三维堆积柱形图(3D Stacked Bar Chart)
目录 前言 适用场景 图例 绘图工具及代码实现 HighCharts echarts MATLAB...
React源码解析18(7)------ 实现事件机制(onClick事件)
摘要 在上一篇中,我们实现了useState的hook,但由于没有实现事件机制,所以我们只能将setState挂载在window上。 而这一篇主要就是来实现事件系统,从而实现通过点击事件进行setState。 而在React中,虽然我们是将事件绑…...
Android app专项测试之耗电量测试
前言 耗电量指标 待机时间成关注目标 提升用户体验 通过不同的测试场景,找出app高耗电的场景并解决 01、需要的环境准备 1、python2.7(必须是2.7,3.X版本是不支持的) 2、golang语言的开发环境 3、Android SDK 此三个的环境搭建这里就不详细说了&am…...
设计模式-面试常问
1.单例模式 保证系统中,一个类,只有一个实例,并且提供对外访问。 优点:只有一个对象,可以节省资源。适合频繁创建销毁对象的场景。 实现:要用到static,静态私有对象。暴露单例的静态方法。 &…...
聊聊在集群环境中本地缓存如何进行同步
前言 之前有发过一篇文章聊聊如何利用redis实现多级缓存同步。有个读者就给我留言说,因为他项目的redis版本不是6.0版本,因此他使用我文章介绍通过MQ来实现本地缓存同步,他的同步流程大概如下图 他原来的业务流程是每天凌晨开启定时器去爬取…...
【C++深入浅出】初识C++上篇(关键字,命名空间,输入输出,缺省参数,函数重载)
目录 一. 前言 二. 什么是C 三. C关键字初探 四. 命名空间 4.1 为什么要引入命名空间 4.2 命名空间的定义 4.3 命名空间使用 五. C的输入输出 六. 缺省参数 6.1 缺省参数的概念 6.2 缺省参数的分类 七. 函数重载 7.1 函数重载的概念 7.2 函数重载的条件 7.3 C支…...
租房合同范本
房屋租赁合同 甲方(出租方): 身份证: 联系电话: 乙方(承租方): 身份证: 联系电话: …...
轻薄的ESL电子标签有哪些特性?
在智慧物联逐渐走进千万家的当下,技术变革更加日新月异。ESL电子标签作为科技物联的重要组成部分,是推动千行百业数字化转型的重要技术,促进物联网产业的蓬勃发展。在智慧零售、智慧办公、智慧仓储等领域,ESL电子标签在未来是不可…...
AI 实力:利用 Docker 简化机器学习应用程序的部署和可扩展性
利用 Docker 的强大功能:简化部署解决方案、确保可扩展性并简化机器学习模型的 CI/CD 流程。 近年来,机器学习 (ML) 出现了爆炸性增长,导致对健壮、可扩展且高效的部署方法的需求不断增加。由于训练和服务环境之间的差异或扩展的困难等因素&a…...
商用汽车转向系统常见故障解析
摘要: 车辆转向系统是用于改变或保持汽车行驶方向的专门机构。其作用是使汽车在行驶过程中能按照驾驶员的操纵意图而适时地改变其行驶方向,并在受到路面传来的偶然冲击及车辆意外地偏离行驶方向时,能与行驶系统配合共同保持车辆继续稳定行驶…...
Python中的MetaPathFinder
MetaPathFinder 是 Python 导入系统中的一个关键组件,它与 sys.meta_path 列表紧密相关。sys.meta_path 是一个包含 MetaPathFinder 实例的列表,这些实例用于自定义模块的查找和加载逻辑。当使用 import 语句尝试导入一个模块时,Python 会遍历…...
工控机防病毒
2月3日,作为全球最大的半导体制造设备和服务供应商,美国应用材料公司(Applied Materials)表示,有一家上游供应商遭到勒索软件攻击,由此产生的关联影响预计将给下季度造成2.5亿美元(约合人民币17…...
LangChain手记 Question Answer 问答系统
整理并翻译自DeepLearning.AILangChain的官方课程:Question Answer(源代码可见) 本节介绍使用LangChian构建文档上的问答系统,可以实现给定一个PDF文档,询问关于文档上出现过的某个信息点,LLM可以给出关于该…...
如何优化css中的一些昂贵属性
如何优化css中的一些昂贵属性 就性能而言,某些 CSS 属性比其他属性的成本更高。如果使用不当,它们可能会减慢我们的网页速度并降低对用户的响应速度。在本文中,我们将探讨一些成本最高的 CSS 属性以及如何优化它们。 box-shadow box-shado…...
基于安防监控EasyCVR视频汇聚融合技术的运输管理系统的分析
一、项目背景 近年来,随着物流行业迅速发展,物流运输费用高、运输过程不透明、货损货差率高、供应链协同能力差等问题不断涌现,严重影响了物流作业效率,市场对于运输管理数字化需求愈发迫切。当前运输行业存在的难题如下…...
在WordPress站点中展示阅读量等流量分析数据(超详细实现)
这篇文章也可以在我的博客中查看 关于本文 专业的流量统计系统能够相对真实地反应网站的访问情况。 这些数据可以在后台很好地进行分析统计,但有时我们希望在网站前端展示一些数据 最常见的情景就是:展示页面的浏览量 这简单的操作当然也可以通过简单…...
学习 Iterator 迭代器
今天看到一个面试题, 让下面解构赋值成立。 let [a,b] {a:1,b:2} 如果我们直接在浏览器输出这行代码,会直接报错,说是 {a:1,b:2} 不能迭代。 看了es6文档后,具有迭代器的就一下几种类型,没有Object类型,…...
JVM---垃圾回收算法介绍
目录 分代收集理论 三种垃圾回收算法 标记-清除算法(最基础的、基本不用) 标记-复制算法 标记-整理算法 正式因为jvm有了垃圾回收机制,作为java开发者不会去特备关注内存,不像C和C。 优点:开发门槛低、安全 缺点…...
TEdit终极指南:如何用免费地图编辑器10倍提升泰拉瑞亚创作效率
TEdit终极指南:如何用免费地图编辑器10倍提升泰拉瑞亚创作效率 【免费下载链接】Terraria-Map-Editor TEdit - Terraria Map Editor - TEdit is a stand alone, open source map editor for Terraria. It lets you edit maps just like (almost) paint! It also let…...
实战应用:基于快马平台开发具备origin高级分析功能的在线工具
今天想和大家分享一个最近用InsCode(快马)平台做的实战项目——开发一个具备Origin高级分析功能的在线工具。作为一个经常需要处理实验数据的科研狗,Origin这类软件的分析功能确实强大,但每次都要安装本地软件实在麻烦。于是就想试试能不能做个在线版&am…...
5大核心功能解密:douyin-downloader抖音下载器实战指南
5大核心功能解密:douyin-downloader抖音下载器实战指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…...
从‘腐蚀液’到‘设计美学’:PCB布线‘禁止直角’这条规则是怎么流行起来的?
从工艺限制到设计美学:PCB布线"禁止直角"规则的历史演变 在电子工程领域,PCB布线中"禁止直角"的规则几乎成为了一种行业圣经。从大学实验室到商业设计部门,新手工程师们总是被反复告诫要避免在布线中使用90度转角。但有趣…...
Kafka消费者组避坑指南:从位移提交到重平衡的实战经验
Kafka消费者组实战避坑指南:从位移管理到重平衡优化 在分布式消息系统中,Kafka消费者组的稳定性直接决定了数据处理的可靠性。我曾亲眼见证过一个电商大促场景下,由于消费者组配置不当导致百万级订单积压的故障。本文将分享七个关键场景的深度…...
HUNYUAN-MT 7B翻译终端Typora Markdown写作增强:实时双语文档创作
HUNYUAN-MT 7B翻译终端Typora Markdown写作增强:实时双语文档创作 1. 引言 如果你经常用Typora写技术博客或者项目文档,可能遇到过这样的场景:好不容易写完一篇内容详实的文章,想要分享给国际社区,却卡在了翻译上。手…...
计算机毕业设计springboot基于Web的健身会员管理系统 基于SpringBoot的健身房智能化运营服务平台 SpringBoot框架下的健身俱乐部会员服务与课程预约系统
计算机毕业设计springboot基于Web的健身会员管理系统e7cr4n62(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 随着全民健身意识的提升和健康管理需求的日益增长,传统…...
祝贺电影《得闲谨制》荣获2026亚洲艺术电影节 六项提名
电影《得闲谨制》荣获2026亚洲艺术电影节「金海燕奖」主竞赛单元六项提名: 祝贺导演孔笙 提名最佳导演; 祝贺编剧伍千万里四十八 提名最佳编剧; 祝贺演员肖战 提名最佳男主角; 祝贺演员尹正 提名最佳男配角; 祝贺美术指…...
自建轻量CI_CD:GitHub Actions + Docker + 自动版本号 + 自动回滚 实战教程
自建轻量CI/CD:GitHub Actions Docker 自动版本号 自动回滚 实战教程 🏷️ 标签:CI/CD、GitHub Actions、Docker、自动化部署、自动版本号、自动回滚、DevOps 📌 阅读指南:本文手把手带你搭建一套轻量、免费、稳定的…...
从零开始:使用VSCode + CMake + Ninja + GCC构建高效MCU开发环境
1. 为什么需要这套开发环境? 作为一名在嵌入式领域摸爬滚打多年的开发者,我深知传统IDE的痛点。记得刚入行时,公司清一色使用某商业IDE,直到某天收到法务部的紧急通知——需要立即处理软件版权问题。这让我意识到,基于…...
