力扣LCR143---子结构判定(先序递归、Java、中等题)

题目描述:

给定两棵二叉树 tree1 和 tree2,判断 tree2 是否以 tree1 的某个节点为根的子树具有 相同的结构和节点值 。
注意,空树 不会是以 tree1 的某个节点为根的子树具有 相同的结构和节点值 。

示例 1:

输入:tree1 = [1,7,5], tree2 = [6,1]
输出:false
解释:tree2 与 tree1 的一个子树没有相同的结构和节点值。

示例 2:

输入:tree1 = [3,6,7,1,8], tree2 = [6,1]
输出:true
解释:tree2 与 tree1 的一个子树拥有相同的结构和节点值。即 6 - > 1。

提示:

0 <= 节点个数 <= 10000

代码:

public boolean isSubStructure(TreeNode A, TreeNode B) {if (A == null || B == null)return false;//先从根节点判断B是不是A的子结构,如果不是在分别从左右两个子树判断,//只要有一个为true,就说明B是A的子结构return isSub(A, B) || isSubStructure(A.left, B) || isSubStructure(A.right, B);
}boolean isSub(TreeNode A, TreeNode B) {//这里如果B为空,说明B已经访问完了,确定是A的子结构if (B == null)return true;//如果B不为空A为空,或者这两个节点值不同,说明B树不是//A的子结构,直接返回falseif (A == null || A.val != B.val)return false;//当前节点比较完之后还要继续判断左右子节点return isSub(A.left, B.left) && isSub(A.right, B.right);
}

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

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

相关文章

抖店商家必看:“违规操作”扣除保证金2000块!这些细节要避免!

哈喽~我是电商月月 很多没经验的新手朋友开抖店都会遇到一个问题&#xff1a; 那就是开抖音小店时&#xff0c;因操作不当被扣除保证金的该怎么办&#xff1f; 实话实说&#xff0c;被判违规扣除保证金是能申诉的。但通过几率几乎是没有的 所以想要继续开店&#xff0c;只能…

eclipse .project

.project <?xml version"1.0" encoding"UTF-8"?> <projectDescription> <name>scrm-web</name> <comment></comment> <projects> </projects> <buildSpec> <buil…

HarmonyOS 开发-短视频切换实现案例

介绍 短视频切换在应用开发中是一种常见场景&#xff0c;上下滑动可以切换视频&#xff0c;十分方便。本模块基于Swiper组件和Video组件实现短视频切换功能。 效果图预览 使用说明 上下滑动可以切换视频。点击屏幕暂停视频&#xff0c;再次点击继续播放。 实现思路 使用Sw…

Linux锁的使用

一、临界资源与临界区 多线程会共享例如全局变量等资源&#xff0c;我们把会被多个执行流访问的资源称为临界资源&#xff0c;我们是通过代码访问临界资源的&#xff0c;而我们访问临界资源的那部分代码称为临界区。 实现一个抢票系统 只有一个线程抢票时 #include <ios…

Docker速成:新手变专家!

Docker介绍 容器历史 1、Chroot Jail 就是常见的chroot命令的用法。它在1979年的时候就出现了&#xff0c;被认为是最早的容器化技术之一。它可以把一个进程的文件系统隔离起来。 2、The FreeBSD Jail &#xff08;监狱&#xff09;实现了操作系统级别的虚拟化&#xff0c;他…

外包干了25天,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

Jeesite开源项目中ECharts折线图MarkPoint无法绘制问题的解决方案

Jeesite开源项目中ECharts折线图MarkPoint无法绘制问题的解决方案 在Jeesite开源项目的开发中&#xff0c;数据可视化是一个不可或缺的环节。ECharts作为一个功能强大的数据可视化库&#xff0c;在项目中经常被用来绘制各种图表。然而&#xff0c;在绘制折线图时&#xff0c;有…

【python】python的选择语句的三个题目

1.乘坐飞机时&#xff0c;有些航班没有行李额度&#xff0c;当乘客的行李小于等于20公斤时&#xff0c;按每公斤1.68元收费&#xff1b;大于20公斤时&#xff0c;按每公斤1.98元收费&#xff0c;编写程序计算收费情况&#xff08;保留两位小数&#xff09; air_bagfloat(input…

swiftUI macOS使用webview加载外部网址

import SwiftUI import WebKitstruct ContentView: View {var body: some View {VStack {Text("测试")WebView(urlString: "https://aweb123.com").frame(maxWidth: .infinity, maxHeight: .infinity) // 让 WebView 占据整个可用空间}.frame(minWidth: 20…

欧拉回路算法

1 基本概念 1.1 欧拉路径和欧拉回路 欧拉回路&#xff1a; 在一个图中&#xff0c;由i点出发&#xff0c;将每个边遍历一次最终回到出发点i的一条路径。具有欧拉回路的图称为欧拉图。 无向图 存在欧拉回路的充要条件是所有的点的度数均为偶数 因为每个点的度数为偶数&#xf…

OpenHarmony实战:轻量系统STM32F407芯片移植案例

介绍基于STM32F407IGT6芯片在拓维信息Niobe407开发板上移植OpenHarmony LiteOS-M轻量系统&#xff0c;提供交通、工业领域开发板解决方案。 移植架构采用Board与SoC分离方案&#xff0c;使用arm gcc工具链Newlib C库&#xff0c;实现了lwip、littlefs、hdf等子系统及组件的适配…

Todesstern:一款针对注入漏洞识别的强大变异器引擎

关于Todesstern Todesstern是一款功能强大的变异器引擎&#xff0c;该工具基于纯Python开发&#xff0c;该工具旨在辅助广大研究人员发现和识别未知类型的注入漏洞。 Todesstern翻译过来的意思是Death Star&#xff0c;即死亡之星&#xff0c;该工具是一个变异器引擎&#xff…

【剪映专业版】03云空间扩容

视频课程&#xff1a;B站有知公开课【剪映电脑版教程】 个人云空间&#xff1a;多端同步及素材、草稿保存 云空间默认为512M&#xff0c;可以免费提升至3GB 访问剪映官网-全能易用的桌面端剪辑软件-轻而易剪 上演大幕&#xff0c;后进入工作台 点击消息 小组云空间&#xff…

视频图像的两种表示方式YUV与RGB(2)

前一篇文章具体介绍了视频图像的两种表示方式&#xff0c;此篇详细介绍下YUV的采样格式及其对图像视频的表示方式。 常见YUV有很多规格&#xff0c;例如YUV444&#xff0c;YUV422和YUV420&#xff0c;后面的数字是表示采样的比例。其中YUV420是FFmpeg里最常用的&#xff0c;因为…

004_文本分析与挖掘(jieba库三种分词模式)

jieba库 一、概述 jieba 库的分词原理是利用一个中文词库&#xff0c;将待分词的内容与分词词库进行比对&#xff0c;通过图结构和动态规划方法找到最大概率的词组&#xff1b;除此之外&#xff0c;jieba 库还提供了增加自定义中文单词的功能。 支持三种分词模式 1、精确模式…

Linux(CentOS7)部署 y-api 接口管理平台

目录 前言 前置环境 mongodb node 安装 y-api 部署页面 启动 y-api 基本使用教程 前言 前后端分离时代&#xff0c;前后端通过接口文档来协作开发项目。一般开发过程中&#xff0c;由后端先编写接口文档&#xff0c;然后交付给前端&#xff0c;这时候前后端都根据这个…

[数据概念|方案实操]最新案例-七个数据资产化案例解析

“ 数据资产化市场发展可称得上是如火如荼” 数据资产化市场快速发展&#xff0c;最近又涌现出一批创新案例&#xff0c;在这里跟大家做一个分享和解析&#xff0c;这里我们按照发生或报道时间顺序由近至远。 1.2024年3月21日&#xff0c;北京建院完成建筑数据资产模拟入表 2…

ML Kit:通过Mendix 集成人脸识别算法

预训练模型是一种已经使用训练数据集进行训练并包含执行模型所需所有参数的机器学习模型。这类模型常用于计算机视觉领域&#xff0c;比如可以在Mendix Studio Pro中导入ONNX模型后&#xff0c;可以在微流程中执行该模型。 本文讲述如何在Mendix应用程序中集成特定的人脸检测模…

OpenHarmony实战:帆移植案例(中)

OpenHarmony实战&#xff1a;帆移植案例&#xff08;上&#xff09; Audio服务介绍 服务节点 基于ADM框架的audio驱动对HDI层提供三个服务hdf_audio_render、hdf_audio_capture、hdf_audio_control。 开发板audio驱动服务节点如下&#xff1a; console:/dev # ls -al hdf_au…