166.二叉树:相同的树(力扣)

代码解决

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:bool isSameTree(TreeNode* p, TreeNode* q) {if (p == nullptr && q == nullptr) {return true;} else if (p == nullptr || q == nullptr) {return false;}queue<TreeNode*> que1;if(p!=nullptr) que1.push(p);queue<TreeNode*> que2;if(q!=nullptr) que2.push(q);while(!que1.empty()&&!que2.empty()){auto node1=que1.front();que1.pop();auto node2=que2.front();que2.pop();if(node1->val!=node2->val){return false;}auto left1=node1->left,right1=node1->right,left2=node2->left,right2=node2->right;if ((left1 == nullptr) ^ (left2 == nullptr)) {return false;}if ((right1 == nullptr) ^ (right2 == nullptr)) {return false;}if (left1 != nullptr) {que1.push(left1);}if (right1 != nullptr) {que1.push(right1);}if (left2 != nullptr) {que2.push(left2);}if (right2 != nullptr) {que2.push(right2);}}return que1.empty()&&que2.empty();}
};

代码解决2 

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr, right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:bool isSameTree(TreeNode* p, TreeNode* q) {// 如果两个节点都为空,则它们相同if(p==nullptr&&q==nullptr){return true;}// 如果只有一个节点为空,则它们不同else if(p==nullptr||q==nullptr){return false;}// 如果两个节点的值不同,则它们不同else if(p->val!=q->val){return false;}// 递归地比较左子树和右子树else{return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);}}
};

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

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

相关文章

【机器学习】RLHF:在线方法与离线算法在大模型语言模型校准中的博弈

RLHF&#xff1a;在线方法与离线算法在大型语言模型校准中的博弈 一、引言二、RLHF概述三、在线方法与离线算法的对比四、实验验证与代码实例 一、引言 在人工智能领域&#xff0c;大型语言模型&#xff08;LLM&#xff09;的校准已成为一个备受关注的热点。基于人类反馈的强化…

实现spring配置bean类机制

大家好&#xff0c;这里是教授.F 流程说明&#xff1a; 我们自己实现spring配置bean类的机制&#xff0c;要先了解原本是怎么实现的。 原本的机制就是有一个bean配置文件&#xff0c;还有一个ApplicationContext spring文件。bean类写着要扫描的文件信息&#xff0c;spring文…

【Python学习】数据结构+正则表达式

个人主页&#xff1a;Yang-ai-cao 系列专栏&#xff1a;Python学习 博学而日参省乎己&#xff0c;知明而行无过矣 目录 个人主页&#xff1a;Yang-ai-cao 系列专栏&#xff1a;Python学习 博学而日参省乎己&#xff0c;知明而行无过矣 数据结构 一、列表&#xff08;Lis…

风电机组与风力发电机:它们是同一个东西吗?

风电机组与风力发电机&#xff1a;它们是同一个东西吗&#xff1f; 风电机组和风力发电机是两个常见的术语&#xff0c;尤其是在可再生能源领域。虽然这两个术语有时会被混淆使用&#xff0c;但它们实际上指的是不同的设备和系统。为了弄清楚它们之间的关系&#xff0c;本文将…

最近很火的 ChatTTS项目,有大佬做的 ChatTTS-UI 来啦

地址&#xff1a;https://github.com/jianchang512/ChatTTS-ui 》》》更多开源项目 ChatTTS webUI & API 一个简单的本地网页界面&#xff0c;直接在网页使用 ChatTTS 将文字合成为语音&#xff0c;支持中英文、数字混杂&#xff0c;并提供API接口。 Releases中可下载Wi…

算法学习笔记——二进制

二进制 负数的十进制转二进制数&#xff08;-2 -> 1110&#xff09;&#xff1a; 正数 - 1&#xff0c;再取反&#xff0c;得到负数的二进制。 例如&#xff1a;-2 &#xff1a;0010 -> 0010 - 1 -> 0001 -> 取反 -> 1110 负数的二进制转十进制&#xff08;…

八-工具包2-numpy

numpy相关 概念 Numpy【Numeric Python】是python开源的科学计算工具包,支持维度数组与矩阵运算,核心能力:数组的算数和逻辑运算,傅立叶变换、用于图形操作的例程、线性代数、随机数等有关的内置函数。 NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一…

spring中数据绑定是指什么?

在 Spring 框架中&#xff0c;数据绑定指的是将客户端发送的数据&#xff08;如 HTTP 请求中的参数&#xff09;映射或绑定到 Java 对象上的过程。这个过程大多是自动进行的&#xff0c;并涉及到类型转换和格式验证。数据绑定让开发者能够轻松地处理来自于表单提交、RESTful 请…

光伏并网逆变器UL 1741:2021标准解析

光伏并网逆变器UL 1741:2021标准解析 不同国家的安规认证可以说是光伏逆变器走向国际市场的一张通行证&#xff0c;由于全球各国家的电网制式及并网政策的不同差异&#xff0c;这对逆变器测试顺利的通过安规测试认证 还是有一定的技术难度&#xff0c;也是中国光伏制造企业迫切…

最全解析:只有了解低代码平台的今生前世,才能明白低代码是什么

低代码&#xff08;Low-Code&#xff09;是一种软件开发方法&#xff0c;它使得开发人员能够通过图形界面、拖放组件和模型驱动的逻辑&#xff0c;快速地构建和部署应用程序&#xff0c;而无需编写大量的代码。尽管低代码这个术语是在2014年才提出&#xff0c;从诞生之初距今不…

【数据结构】复杂度的重要性—–决定程序运行的效率

【数据结构】复杂度的重要性—–决定程序运行的效率 前言 在我们写算法的时候&#xff0c;常常会需要考虑一个问题&#xff1a;这个算法好不好&#xff1f;而这个“好”实际上就取决于是算法的复杂度。 算法复杂度&#xff08;Algorithmic Complexity&#xff09;是指算法在编…

如何在电脑上安装两个flutter版本

Flutter Version Manager (FVM): Flutter的版本管理终极指南 Mac的flutter多版本管理之fvm的安装及使用 一、安装fvm brew tap leoafarias/fvm brew install fvm这个错误可能是由于网络问题或者 Git 配置问题导致的&#xff0c;我开启了梯子就可以了 brew install watchman…

Low Memory Killer in Android

目录 低内存管理&#xff08;Linux vs Android&#xff09; Linux内存回收 shrink_slab原理 shrink_zone原理 oom killer oom killer设计原则 OOM killer具体实现 android的lmk(Low Memory Killer) Android系统特点 oom killer在android中的不足 ​​​​​​​LMK概…

如何理解:选择排序中交换可能改变相同元素的相对顺序?

文章目录 选择排序和冒泡排序区别选择排序&#xff08;Selection Sort&#xff09;冒泡排序&#xff08;Bubble Sort&#xff09;区别总结 如何理解&#xff1a;选择排序中交换可能改变相同元素的相对顺序示例选择排序步骤关键点稳定排序的定义 选择排序和冒泡排序区别 要理解…

【Python】setup.py build_ext --inplace解释

【Python】setup.py build_ext --inplace解释 文章目录 【Python】setup.py build_ext --inplace解释功能命令详解应用场景示例具体步骤 功能 python setup.py build_ext --inplace 是用于构建和编译Python扩展模块的命令。它的主要用途是在开发期间将编译生成的扩展模块放置在…

基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用

背景 随着互联网服务的广泛普及与技术应用的深入发展&#xff0c;日志数据作为记录系统活动、用户行为和业务操作的宝贵资源&#xff0c;其价值愈发凸显。然而&#xff0c;当前海量日志数据的产生速度已经远远超出了传统数据分析工具的处理能力&#xff0c;这不仅要求我们具备…

550. 游戏玩法分析 IV

550. 游戏玩法分析 IV 题目链接&#xff1a;550. 游戏玩法分析 IV 代码如下&#xff1a; # Write your MySQL query statement below select round(avg(a.event_date is not null),2)as fraction from (select player_id,min(event_date) as loginfrom activitygroup by p…

Unity学习笔记---材质纹理天空盒

材质纹理 CubeMap立方体纹理 在Assets中&#xff0c;选择Create---Legacy---CubeMap可以创建立方体纹理。这种纹理由6个纹理图组成&#xff0c;用于天空盒、环境映射、反射、折射等场景。 天空盒 天空盒用于给场景添加一个远景背景。需要设置相机的Clear Flags 属性设置为 …

【机器学习】机器学习与AI大数据的融合:开启智能新时代

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 机器学习与AI大数据的融合 &#x1f4d2;1. 引言&#x1f4d5;2. 机器学习与大数据&#x1f3a9;机器学习与大数据的特征&#x1f388;大数据如…

驱动开发之platform总线

1.前言 在前面的实验以及提出的各种问题中&#xff0c;为了提高移植性&#xff0c;降低模块耦合度&#xff0c;提让模块高内聚&#xff0c;分离device与driver是一个必然的趋势了。为了解决这个问题&#xff0c;心心念念的platform总线出来。 linux从2.6起就加入了一套新的驱…