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.mfbz.cn/a/674134.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无线麦克风哪个品牌音质最好?最好的无线麦克风品牌排行推荐

xx 虽然Vlog随手就能拍&#xff0c;不过Vlog不仅要记录画面&#xff0c;还要记录声音&#xff0c;毕竟一段声色俱全的视频要比一张照片有意义得多。把镜头擦拭干净可以留下清晰明朗的画面&#xff0c;但是在户外参杂了各种嘈杂的声音手机很难收录清晰的人声&#xff0c;所以一…

一点连接千家银行,YonSuite让“银行回单”一键获取

在当今日益复杂多变的商业环境中&#xff0c;企业的资金管理变得尤为重要。传统的银行回单管理方式&#xff0c;如手动登录网银、逐一下载回单、核对信息等&#xff0c;不仅效率低下&#xff0c;而且容易出错&#xff0c;给企业的财务管理带来了极大的挑战。 然而&#xff0c;…

OBC充电机的基础认识

OBC是电动汽车上的充电设备&#xff0c;主要用于将外部交流电源转换为直流电源&#xff0c;为电动汽车的动力电池组充电。OBC是电动汽车的重要组成部分&#xff0c;其性能直接影响到电动汽车的续航里程和充电效率。 OBC的主要功能包括&#xff1a;将交流电转换为直流电&#xf…

C++设计模式|结构型 代理模式

1.什么是代理模式&#xff1f; 代理模式Proxy Pattern是一种结构型设计模式&#xff0c;用于控制对其他对象的访问。 在代理模式中&#xff0c;允许一个对象&#xff08;代理&#xff09;充当另一个对象&#xff08;真实对象&#xff09;的接口&#xff0c;以控制对这个对象的…

《论文阅读》具有人格自适应注意的个性化对话生成 AAAI 2023

《论文阅读》具有人格自适应注意的个性化对话生成 AAAI 2023 前言 简介挑战与机遇任务定义模型架构Context EncoderPersona EncoderDialog DecoderPersona-Adaptive Attention损失函数实验结果 前言 亲身阅读感受分享&#xff0c;细节画图解释&#xff0c;再也不用担心看不懂论…

Linux 服务查询命令(包括 服务器、cpu、数据库、中间件)

Linux 服务查询命令&#xff08;包括 服务器、cpu、数据库、中间件&#xff09; Linux获取当前服务器ipLinux使用的是麒麟版本还是cenos版本Linux获取系统信息Linux查询nignx版本 Linux获取当前服务器ip hostname -ILinux使用的是麒麟版本还是cenos版本 这个文件通常包含有关L…

社交媒体数据恢复:易信

我们可以参考其他类似软件的数据恢复方法尝试解决问题。 检查备份&#xff1a;首先&#xff0c;检查您是否在易信或其他云服务中备份了数据。如果有备份&#xff0c;您可以尝试从备份中恢复数据。 联系易信客服&#xff1a;如果找不到备份&#xff0c;您可以联系易信的客户服务…

Redis 持久化: RDB和AOF

文章目录 ⛄1.RDB持久化&#x1fa82;&#x1fa82;1.1.执行时机&#x1fa82;&#x1fa82;1.2.RDB原理&#x1fa82;&#x1fa82;1.3.小结 ⛄2.AOF持久化&#x1fa82;&#x1fa82;2.1.AOF原理&#x1fa82;&#x1fa82;2.2.AOF配置&#x1fa82;&#x1fa82;2.3.AOF文件…

电脑显示屏亮度怎么调?3招帮你调整亮度

在使用电脑时&#xff0c;调整显示屏亮度是一项常见的操作&#xff0c;它可以帮助我们适应不同的环境光线&#xff0c;提高视觉舒适度。然而&#xff0c;许多用户可能不清楚电脑显示屏亮度怎么调。本文将介绍3种简单实用的方法&#xff0c;帮助您轻松调整电脑显示屏的亮度&…

计算机网络介绍

计算机网络介绍 概述网络概述相关硬件 链路层VLAN概念VLAN 特点VLAN 的划分帧格式端口类型原理 STP概念特点原理 Smart Link概念特点组网 网络层ARP概念原理 IP概念版本IP 地址 IPv4IP 地址数据报格式 IPv6特点IP 地址数据报格式 ICMP概念分类报文格式 VRRP概念原理报文格式 OS…

原生APP和H5 APP的区别

原生APP&#xff08;Native App&#xff09;和H5 APP&#xff08;也称为Web App或Hybrid App&#xff09;是两种不同的移动应用开发方式&#xff0c;它们在开发技术、性能、用户体验、开发成本和维护等方面存在显著区别。以下是它们的主要区别。北京木奇移动技术有限公司&#…

番外篇-用户购物偏好标签BP-推荐算法ALS

引言 推荐系统式信息过载所采用的措施&#xff0c;面对海量的数据信息&#xff0c;从中快速推荐出符合用户特点的物品。 推荐系统是自动化的通过分析用户对历史行为数据&#xff0c;完成用户的个性化建模&#xff0c;从而主动给用户推荐能够满足他们兴趣和需求的软件系统。 数…

二、go微服务项目“商城项目实战开发”第二步grpc和gin的直连调用

文章目录 商城项目实战开发-GRPC和GIN的直连调用01、本次课程微服务的技术栈02、用户服务接口定义和实现登录1、密码问题01、MD5的方式02、加盐的方式03、动态盐04、使用加盐框架passwordEncoder2、用户服务接口的暴露3、Grpc的实现步骤1.定义暴露接口2.编写user的调用文件3.编…

C语言 带头双向循环链表的基本操作

带头双向循环链表的基本操作 结构体定义初始化创建新节点头插头删尾插尾删查找在指定位置之后插入删除指定位置的值打印 结构体定义 typedef int DataType; typedef struct LinkNode {DataType data;struct LinkNode* prev;struct LinkNode* next; }LNode;初始化 有两种初始化…

ssm珠宝店信息管理系统-计算机毕业设计源码87229

摘 要 近年来&#xff0c;随着移动互联网的快速发展&#xff0c;电子商务越来越受到网民们的欢迎&#xff0c;电子商务对国家经济的发展也起着越来越重要的作用。简单的流程、便捷可靠的支付方式、快捷畅通的物流快递、安全的信息保护都使得电子商务越来越赢得网民们的青睐。现…

ip地址快速切换软件有哪些好处

ip地址快速切换软件有哪些好处&#xff1f;IP地址快速切换软件具有诸多显著的好处&#xff0c;以下是对其主要优势的详细阐述&#xff1a; 首先&#xff0c;IP地址快速切换软件极大地提升了网络活动的灵活性和便捷性。对于需要经常切换网络环境或进行多账号管理的用户而言&…

程序员日志之地下城与勇士手游

目录 传送门正文日志1、概要2、手游特点3、主C升级3、九大职业4、打造-史诗毕业装备5、打造-毕业史诗装备封印属性6、打造-徽章6.1、普通徽章6.2、白金徽章6.3、银色徽章 7、打造-魔力结晶8、打造-附魔9、打造-勋章9.1、公会勋章9.2、冒险勋章9.3、团本勋章 10、打造-称号11、打…

远控免杀篇

0x00&#xff1a;前言 随着近两年hvv和红蓝对抗以及国家对于网络安全的重视&#xff0c;国内防护水平都蹭蹭上了一个台阶&#xff0c;不管是内部人员的技术水平提高还是防护设备的层层部署&#xff0c;均给了红队人员想要进一步行动设置了障碍。 通过weblogic的cve-2019-2725获…

Pipeline管道

目录 一、介绍二、为什么使用pipeline1.读入数据集2、数据预处理1、缺失值、重复值处理2、数据编码、标准化 3、分割数据集4、模型训练、预测5、调参&#xff1a;网格搜索6、模型保存7、预测新进用户 三、pipeline示例1、读取数据2、数据处理1、数据类型拆分2、分类变量处理3、…

第二证券今日投资参考:猪价趋势上行 电网工程投资力度有望加强

上星期五&#xff0c;两市股指盘中窄幅震动上扬&#xff0c;尾盘翻绿。到收盘&#xff0c;沪指跌0.16%报3086.81点&#xff0c;深证成指跌0.22%报9364.38点&#xff0c;创业板指跌0.44%报1805.11点&#xff0c;两市算计成交7149亿元。工作方面&#xff0c;传媒、轿车、半导体、…