LC 100.相同的树

100. 相同的树

给你两棵二叉树的根节点 pq ,编写一个函数来检验这两棵树是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

示例 1:

输入: p = [1,2,3], q = [1,2,3]
输出: true

示例 2:

输入: p = [1,2], q = [1,null,2]
输出: false

示例 3:

输入: p = [1,2,1], q = [1,1,2]
输出: false

提示:

  • 两棵树上的节点数目都在范围 [0, 100]
  • − 1 0 4 ≤ N o d e . v a l ≤ 1 0 4 -10^4 \leq Node.val \leq 10^4 104Node.val104

解法一(递归)

思路分析:

  1. 采用与LC101.对称二叉树相同的思路来解决

实现代码如下:

class Solution {public boolean isSameTree(TreeNode p, TreeNode q) {if (p == null && q == null)return true;if (p == null || q == null)return false;return p.val == q.val&& isSameTree(p.left, q.left)&& isSameTree(p.right, q.right);}
}

提交结果如下:

解答成功:
执行耗时:0 ms,击败了100.00% 的Java用户
内存消耗:40.2 MB,击败了5.00% 的Java用户

复杂度分析:

  • 时间复杂度: O ( n ) O(n) O(n)

  • 空间复杂度: O ( n ) O(n) O(n)

解法二(迭代)

思路分析:

  1. 依旧是与LC101.对称二叉树相同的思路来解决,但是此处使用一个双端队列来代替两个栈

  2. 即第一个二叉树 主要进队出队在队列左端;第二个二叉树 主要进队出队在队列右端

实现代码如下:

class Solution {public boolean isSameTree(TreeNode p, TreeNode q) {Deque<TreeNode> deque = new LinkedList<>();deque.offerFirst(p);deque.offerLast(q);while (!deque.isEmpty()) {TreeNode left = deque.pollFirst();TreeNode right = deque.pollLast();if (left == null && right == null) continue;if (left == null || right == null) return false;if (left.val != right.val) return false;// 两者采用一样的遍历顺序 中左右 所以 右指针先进栈 再左指针进栈deque.offerFirst(left.right);deque.offerFirst(left.left);deque.offerLast(right.right);deque.offerLast(right.left);}return true;}}

提交结果如下:

解答成功:
执行耗时:0 ms,击败了100.00% 的Java用户
内存消耗:40 MB,击败了5.00% 的Java用户

复杂度分析:

  • 时间复杂度: O ( n ) O(n) O(n)

  • 空间复杂度: O ( n ) O(n) O(n)

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

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

相关文章

PostgreSQL技术大讲堂 - 第48讲:PG高可用实现keepalived

PostgreSQL从小白到专家&#xff0c;是从入门逐渐能力提升的一个系列教程&#xff0c;内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容&#xff0c;希望对热爱PG、学习PG的同学们有帮助&#xff0c;欢迎持续关注CUUG PG技术大讲堂。 第48讲&#…

IPv6-基础概念

IPv6基础概念 IPv6技术特点&#xff1a;精简报文格式、实现自动配置和重新编制、支持层次化网络编制、支持端对端安全、更好的支持Qos、支持移动特性。 五元组&#xff1a;源地址&#xff0c;目的地址&#xff0c;源端口&#xff0c;目的端口&#xff0c;协议。 IPv6报头优势…

gitee 本地文件提交到仓库

一、准备工作 1.下载Git Bash Git Bash官网下载地址 http://www.git-scm.com/download/ 点此跳转 2.注册或登录gitee gitee官网地址 https://gitee.com/ 点此跳转 没有账号选择注册有账号的话直接登陆 3.在gitee中新建一个空的仓库 登陆成功后点进个人主页&#xff0c;点击…

美国免税州详细地址:可用于ChatGPT、MJ、POE、AppStore等订阅服务账单地址填写!

地址1zip_Codecountriesstatecitystreet199654USAAKWasilla2075 E Chickaloon Rd236110USAAL MontgomeryMontgomery372034USAARConway617 Watkins St486303USAAZPrescott330 S Cortez St592805USACAAnaheim505 S Zeyn St680232USACOLakewood1390 S Zephyr St706109USACTWether…

Pygame基础4-多阶段

4-多阶段 原理 本章是对第2章的延续。 我们希望为游戏添加多个阶段&#xff0c;比如开始界面、游戏界面、结束界面等。 为此&#xff0c;我们可以使用一个类来管理游戏的不同阶段。 我们创建了GameManager类&#xff0c;并通过self.status属性表示不同的阶段。 intro阶段…

javaSSM公司招聘管理系统IDEA开发mysql数据库web结构计算机java编程maven项目

一、源码特点 IDEA开发SSM公司招聘管理系统是一套完善的完整企业内部系统&#xff0c;结合SSM框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;MAVEN方式加 载&#xff0c;系统具有完整的源代码和…

北京个人车指标摇号攻略

北京个人车指标摇号攻略 随着北京汽车保有量的不断增加&#xff0c;个人车指标的申请和摇号成为了许多市民关注的焦点。对于许多想要在北京拥有自己汽车的市民来说&#xff0c;了解并掌握个人车指标摇号的流程和相关政策显得尤为重要。 一、了解摇号政策 在申请北京个人车指…

solr-lucene的解释

什么是solr-lucene Solr是一个基于Apache Lucene的开源搜索平台。Lucene是一个开源的全文搜索引擎库&#xff0c;它提供了一个简单而强大的API&#xff0c;用于索引和搜索文档。Solr通过在Lucene的基础上构建一个更高级的搜索平台&#xff0c;为用户提供了更丰富的功能和易于使…

Maven核心pom.xml文件

POM( Project Object Model&#xff0c;项目对象模型 ) 是 Maven 工程的基本工作单元&#xff0c;是一个XML文件&#xff0c;包含了项目的基本信息&#xff0c;用于描述项目如何构建&#xff0c;声明项目依赖&#xff0c;等等。 执行任务或目标时&#xff0c;Maven 会在当前目…

聊聊我做测试开发的十年心路历程

作者&#xff1a;天士 一、前言 不知不知觉&#xff0c;已经从事测试开发这个行当 10 来年了&#xff0c;从上大学到参加工作&#xff0c;从南方到北方再回南方&#xff0c;辗转了大半个中国&#xff0c;如今算算进公司已经开启了第五个年头&#xff0c;今年就要五年陈了。 兜…

Codeup_1795:问题 A: Fibonacci

目录 Problem DescriptionInputOutputSample InputSample Output原题链接解题思路代码实现&#xff08;C&#xff09; Problem Description The Fibonacci Numbers{0&#xff0c;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8&#xff0c;13&#xff0…

解决三维模型的模型调色的主要技术方法

解决三维模型的模型调色的主要技术方法 三维模型的模型调色是指对三维模型的表面进行着色和贴图&#xff0c;使其更加真实和生动。在数字媒体、游戏开发和影视制作等领域&#xff0c;模型调色是十分重要的环节。下面将介绍三维模型模型调色的主要技术方法。 材质贴图 材质贴图…

前端理论总结(js)——字符串操作方法

charAt(index): 返回指定索引处的字符串 charCodeAt(index): 返回指定索引处的字符的 Unicode 的值 concat(str1, str2, ...): 连接多个字符串&#xff0c;返回连接后的字符串的副本 fromCharCode(): 将 Unicode 值转换成实际的字符串 indexOf(str): 返回 str 在父串中第一次出…

FFU单元:洁净空气的关键提供者

随着科技的发展和工业的进步&#xff0c;对洁净空气的需求日益增长。在各种关键行业&#xff0c;如半导体制造、液晶显示、电子设备生产以及生物制药等领域&#xff0c;洁净空气的质量对产品的质量和生产效率起着至关重要的作用。在这一背景下&#xff0c;FFU单元&#xff08;风…

CF1801 C. Music Festival [自定义偏序+dp+权值线段树]

传送门:CF [前题提要]:自定义偏序来优化dp的递推,感觉这个trick很好,故记录一下 考虑对于同一张专辑,显然有贡献的序列是一个递增序列,所以我们可以直接对此进行删减. 接下来我们就获得了一些专辑,并且每张专辑的价值都是递增的.我们现在需要解决的问题是如何排列我们的专辑使…

智能文档处理技术综述

一、 智能文档处理介绍 智能文档处理&#xff08;Intelligent Document Processing, IDP&#xff09;是利用人工智能&#xff08;AI&#xff09;、机器学习&#xff08;ML&#xff09;、计算机视觉&#xff08;CV&#xff09;、自然语言处理&#xff08;NLP&#xff09;等技术…

机器学习笔记(2)—单变量线性回归

单变量线性回归 单变量线性回归(Linear Regression with One Variable)1.1 模型表示1.2 代价函数1.3 代价函数的直观理解1.4 梯度下降1.5 梯度下降的直观理解1.6 梯度下降的线性回归 单变量线性回归(Linear Regression with One Variable) ps:...今天很倒霉 一名小女孩悄悄地碎…

Redhat7安装yum源,解决报错No more mirrors to try...

运行yum出现报错 或者 bash: yum: command not found...的提示&#xff0c;按照此篇文章重新安装yum并配置源即可。 前提 Linux系统为redhat7&#xff0c;且可以通外网 步骤一&#xff1a;卸载原有yum 使用rpm -qa | grep yum 查看 rpm -qa|grep yum|xargs rpm -e --node…

极端道路天气数据集 雨天 雾天 道路晴朗

极端道路天气数据集 是一系列专为自动驾驶、智能交通系统研发以及计算机视觉算法测试而设计的真实世界或模拟的道路环境图像和视频集合。这些数据集包含了在各类极端天气条件下捕捉到的道路场景&#xff0c;例如大雾、暴雨、暴雪、冰雹、雾霾、道路结冰等&#xff0c;这些都是…

文件缓存系统(90%用例)C卷(JavaPythonC++Node.jsC语言)

请设计一个文件缓存系统,该文件缓存系统可以指定缓存的最大值(单位为字节)。 文件缓存系统有两种操作:存储文件(put)和读取文件(get)操作命令为put fileName fileSize或者get fileName 存储文件是把文件放入文件缓存系统中;读取文件是从文件缓存系统中访问已存在的文件,如果文…