【LeetCode算法】第100题:相同的树

news2024/11/16 21:53:17

目录

一、题目描述

二、初次解答

三、官方解法

四、总结


一、题目描述

二、初次解答

1. 思路:二叉树的先序遍历。采用递归的先序遍历方法,首先访问根节点若不同则返回false,其次访问左子树和右子树。在访问左右子树时,需要注意两种情况:①某棵树有左子树而另一棵树没有,则返回false。②某棵树有右子树而另一棵树没有,则返回false。在确定树形相同后,再判定它们对应的值是否相同。

2. 代码:

bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
    //两棵树都为空
    if(!p && !q)
        return true;
    //两棵树根节点一个空另一个非空
    if((!p && q) || (p && !q))
        return false;
    //两棵树根节点不同
    if(p->val != q->val)
        return false;
    bool flag1=isSameTree(p->left, q->left);    //访问左子树
    bool flag2=isSameTree(p->right, q->right);  //访问右子树
    return flag1 && flag2;
}

3. 优点:最多遍历一遍两棵树,时间复杂度为O(min{m,n})。

4. 缺点:采用了递归,空间复杂度为O(min{m,n})。

三、官方解法

官方解法一的方法与上述方法相同!官方解法二采用了广度优先搜索,需要手动维护两个队列,代码复杂且时间复杂度和空间复杂度与解法一相同,因此此处不展开讲解。

四、总结

判定两棵二叉树是否相同,可以将其转换为二叉树的遍历问题,从而使用简单的递归算法来求解。

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

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

相关文章

gkuubibiih

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

Kubernetes集群安装部署(Anolis OS 8)

本次 Kubernetes 集群是基于 kubeadm 进行部署的,操作系统采用的 Anolis OS 8.9。 主机IP配置k8s192.168.211.112核,4G,20G硬盘k8s2192.168.211.122核,2G,20G硬盘k8s3192.168.211.132核,2G,20G…

【Vue】异步更新 $nextTick

文章目录 一、引出问题二、解决方案三、代码实现 一、引出问题 需求 编辑标题, 编辑框自动聚焦 点击编辑,显示编辑框让编辑框,立刻获取焦点 即下图上面结构隐藏,下面结构显示,并且显示的时候让它自动聚焦。 代码如下 问题 “…

带Tkinter界面的小验证加密程序——Python课程作业案例分析

Python课程作业案例分析 作业题目要求实现结果动图题目分析主要库介绍和说明实现源码及注释作业题目要求 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的。加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,…

持续监控和优化的简单介绍

DevOps 监控提供了有关生产环境状况的全面且最新的信息,以及有关其服务、基础设施和应用程序的详细信息。通过从日志和指标中收集数据,您可以在软件开发生命周期的每个步骤中监控合规性和性能。 监控不仅仅针对生产问题,它涵盖了规划、开发、…

python --对象属性、类属性、类方法和静态方法

对象属性和类属性 --掌握--对象属性 目标掌握对象属性的使用 对象属性,有时也称实例属性、普通属性、公有属性 、或者直接叫属性 在类内部,访问对象属性语法: self.对象属性名 在类外部,访问对象属性语法: 对象名.对…

关系代数与规范化

本文是根据自己的理解,结合实践整理所得,有兴趣的可以参考学习。

掌握Django文件处理:一步步构建上传功能

创建模型 首先先进入我们的testsite项目下,打开members/models.py文件,先添加我们保存文件的数据模型: class Document(models.Model):name models.CharField(max_length255)file models.FileField(upload_touploads/) # uploads/ 是文件…

大模型基架:Transformer如何做优化?

大模型的基础模式是transformer,所以很多芯片都实现先专门的transformer引擎来加速模型训练或者推理。本文将拆解Transformer的算子组成,展开具体的数据流分析,结合不同的芯片架构实现,分析如何做性能优化。 Transformer结构 tr…

CTF本地靶场搭建——GZ:CTF安装

GZ:CTF 项目地址:https://gitcode.com/GZTimeWalker/GZCTF GZCTF 是一款开源的网络安全竞技平台,由开发者GZTimeWalker维护。该项目旨在提供一个环境,让网络安全爱好者和专业人士能够实践他们的技能,通过解决各种安全问题(即“…

流量分析——一、蚁剑流量特征

君衍. 一、Webshell特征流量分析二、环境介绍三、使用Wireshark进行流量分析1、环境说明2、HTTP追踪流分析3、蚁剑请求体中代码块解读 四、使用BurpSurite进行流量分析1、环境配置2、抓包分析 六、总结 一、Webshell特征流量分析 对于重保、护网等攻防演练的防守方来说&#x…

Python03:python代码初体验2

1、变量命名规范 1)字母(Unicode字符)、数字、下划线,不能使用特殊字符,数字不能开头 2)变量名是区分大小写的(大小写敏感,x和X是两个不同的变量名) 3)不能使…

D-Day 上海站回顾丨以科技赋能量化机构业务

5月31日下午,DolphinDB 携手光大证券,在上海成功举办 D-Day 行业交流会。三十余位来自私募机构的核心策略研发、量化交易员、数据分析专家们齐聚现场,深入交流量化投研交易过程中的经验、挑战及解决方案。 DolphinDB 赋能机构业务平台 来自光…

【一百】【算法分析与设计】N皇后问题常规解法+位运算解法

N皇后问题 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 给出一个nnn\times nnn的国际象棋棋盘,你需要在棋盘中摆放nnn个皇后,使得任意两个皇后之间不能互相攻击。具体来说,不能存在两个皇后位于同…

K8s Pod的QoS类

文章目录 OverviewPod的QoS分类Guaranteed1.如何将 Pod 设置为保证Guaranteed2. Kubernetes 调度器如何管理Guaranteed类的Pod Burstable1. 如何将 Pod 设置为Burstable2.b. Kubernetes 调度程序如何管理 Burstable Pod BestEffort1. 如何将 Pod 设置为 BestEffort2. Kubernete…

Docker 进入指定容器内部(以Mysql为例)

文章目录 一、启动容器二、查看容器是否启动三、进入容器内部 一、启动容器 这个就不多说了 直接docker run… 二、查看容器是否启动 查看正在运行的容器 docker ps查看所有的容器 docker ps -a结果如下图所示: 三、进入容器内部 通过CONTAINER ID进入到容器…

x86国产化麒麟系统上安装docker及问题解决

以前感觉安装docker没有问题,所以没有记录怎么安装的,最近在国产化系统上安装docker总是失败,经过仔细研究完全解决了该问题,特此记录。 参考链接: 在 OpenKylin 上安装 Docker 按照上面的链接可以知道整个docker安装…

足球俱乐部管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,教练管理,用户管理,合同信息管理,赛事管理 前台账户功能包括:系统首页,个人中心,公告信息,赛事…

在k8s中部署Kafka高可用集群超详细讲解

🐇明明跟你说过:个人主页 🏅个人专栏:《数据流专家:Kafka探索》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Kafka简介 2、为什么在Kubernetes中部署Kafka 二、…

Facebook的隐私保护挑战:用户数据安全的新时代

在全球范围内,Facebook已经成为了不可忽视的社交媒体巨头,它连接着超过20亿的活跃用户。然而,随着其影响力的不断扩大,关于用户隐私和数据安全的问题也愈加引人关注。本文将深入探讨Facebook面临的隐私保护挑战,以及它…