当前位置: 首页 > news >正文

Leetcode.100 相同的树

题目链接

Leetcode.100 相同的树 easy

题目描述

给你两棵二叉树的根节点 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][0, 100][0,100]
  • −104<=Node.val<=104-10^4 <= Node.val <= 10^4104<=Node.val<=104

解法:递归

  • 如果 p == nullptr && q == nullptr,就返回 true
  • 如果 p == nullptr || q == nullptr,就返回 false
  • 如果 p->val != q->val,就返回 false

最后再递归的判断 p,q 的左子树 和 右子树是否相同。

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

C++代码:

class Solution {
public:bool isSameTree(TreeNode* p, TreeNode* q) {if(p == nullptr && q == nullptr) return true;if(p == nullptr || q == nullptr) return false;if(p->val != q->val) return false;return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);}
};

Python代码:

class Solution:def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:if p == None and q == None:return Trueif p == None or q == None:return Falseif p.val != q.val:return Falsereturn self.isSameTree(p.left,q.left) and self.isSameTree(p.right,q.right) 

相关文章:

Leetcode.100 相同的树

题目链接 Leetcode.100 相同的树 easy 题目描述 给你两棵二叉树的根节点 p和 q&#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3…...

每个程序员都应该知道的8大算法

在编程开发中&#xff0c;算法是用于解决特定问题或完成特定任务的一组指令或过程。算法可以用任何编程语言表示&#xff0c;可以像一系列基本操作一样简单&#xff0c;也可以像涉及不同数据结构和逻辑的多步骤过程一样复杂。 算法的主要目标是接收输入、处理它并提供预期的输…...

Nestjs实战超干货-概况-模块-Modules

模块 模块就是一个声明了装饰器Module()的类。装饰器Module()提供了元数据&#xff0c;以便让Nest组织应用程序结构。 每个应用程序至少有一个模块&#xff0c;即根模块。根模块是 Nest 用来构建应用程序图的起点&#xff0c;应用程序图是 Nest 用来解析模块和提供者关系和依赖…...

template

模板 模板注意事项 模板的函数体和声明一定要在一起&#xff0c;即放在同一个.h文件中&#xff0c;而不能将其分开到cpp和h文件中模板的编译技巧就是尽量多编译&#xff0c;模板很难查找错误模板的报错一般只有第一行有作用模板指定类型从左到右依次指定 模板推导 #pragma #…...

innovus中时序路径debug及命令使用详解?

写在前面&#xff1a;发现place结果所有与outport相关的timing check都找不到&#xff1f; 刚开始怀疑是sdc约束问题&#xff0c;check了input sdc文件及enc.dat/mmmc/mode/func.sdc 看一下是否设置了set_false_path.当然也可以用命令报出来: report_timing -unconstrained …...

C语言爱心代码大全集—会Ctrl+C就可以表白了

一、C语言爱心代码大全&#xff0c;会CtrlC就可以表白了&#xff01; 博主整理了一个C语言爱心代码大全&#xff0c;里面有C语言爱心代码会动的动态效果和C语言爱心代码大全静态效果&#xff0c;只需复制粘贴就可以用啦&#xff01; 1、动态C语言爱心代码效果图如下&#xff…...

python+vue+django耕地信息管理系统的设计与实现

基普通用户模块含有个人中心、耕地信息管理、转让许可申请管理、租赁许可申请管理等功能&#xff1b;普通管理员模块含有个人中心、用户管理、公示公告管理、耕地信息管理、耕地信息统计、转让许可申请管理、租赁许可申请管理、转让协议管理、租赁协议管理等功能&#xff1b;管…...

【云原生】Dockerfile制作WordPress镜像,实现compose编排部署

文章目录&#x1f479; 关于作者前言环境准备目录结构dockerfile制作镜像yum 脚本Dockerfile-mariadb 镜像Dockerfile-service 镜像docker compose 编排提升✊ 最后&#x1f479; 关于作者 大家好&#xff0c;我是秋意临。 &#x1f608; CSDN作者主页 &#x1f60e; 博客主页…...

五款好用又有趣的WIN10软件推荐

如果你想让你的电脑使用更方便、更有趣、更专业&#xff0c;那么你一定要看看这篇文章&#xff0c;因为我要给你推荐五款好用又有趣的WIN10软件 1.全局搜索——火柴 火柴是一款全局搜索软件&#xff0c;可以让你快速找到你想要的文件、程序、网页等&#xff0c;只需按下AltSp…...

朴素贝叶斯算法

# -*-coding:utf-8-*- """ Author: sunchang Desc: 代码4-7 朴素贝叶斯实现对异常账户检测 """ import numpy as np class NaiveBayesian: def __init__(self, alpha): self.classP dict() self.classP_f…...

【常见CSS扫盲雪碧图】从源码细看CSS雪碧图原理及实现,千字详解【附源码demo下载】

【写在前面】其实估计很多人都听过雪碧图&#xff0c;或者是CSS-Sprite&#xff0c;在很多门户网站就会经常有用到的&#xff0c;之所有引出雪碧图这个概念还得从前端加载多个图片时候页面闪了一下说起&#xff0c;这样给人的视觉效果体验很差&#xff0c;也就借此机会和大家说…...

Java多线程:ThreadLocal源码剖析

ThreadLocal源码剖析 ThreadLocal其实比较简单&#xff0c;因为类里就三个public方法&#xff1a;set(T value)、get()、remove()。先剖析源码清楚地知道ThreadLocal是干什么用的、再使用、最后总结&#xff0c;讲解ThreadLocal采取这样的思路。 三个理论基础 在剖析ThreadLo…...

96、数据的存储

运行实例&#xff1a; 在debug和release两种模式下&#xff0c;进行代码运行&#xff0c;debug下 i 的地址是大于arr[9] 的地址的&#xff0c;release 下i 的地址是小于arr[9] 的地址。原因是:release状态进行了优化处理。 C语言中基本的内置类型 整形数据类型 char …...

@EventListener注解详细使用(IT枫斗者)

EventListener注解详细使用 简介 EventListener是一种事件驱动编程在spring4.2的时候开始有的&#xff0c;早期可以实现ApplicationListener接口, 为我们提供的一个事件监听、订阅的实现&#xff0c;内部实现原理是观察者设计模式&#xff1b;为的就是业务系统逻辑的解耦,提高…...

[c++17新增语言特性] --- [[nodiscard]]和[[maybe_unused]]

1 [[nodiscard]] 介绍和应用示例 [[nodiscard]] 是C++17引入的一个属性(Attribute),它用于向编译器提示一个函数的返回值应该被检查,避免其被忽略或误用。它可以被用于函数、结构体、类、枚举和 typedef 等声明上,表示如果函数返回值未被使用,或者结构体、类、枚举和 type…...

Centos7安装和使用docker的笔记

最近项目要求用容器部署&#xff0c;所以需要将docker的用法搞清楚&#xff0c;在操作过程中&#xff0c;积累了一些操作方法和技巧&#xff0c;作为笔记&#xff0c;为后面使用做个参考。 首先安装docker需要给centos增加源&#xff08;参考https://www.runoob.com/docker/cen…...

结构像与功能像

导读现代神经成像技术使我们能够研究活体大脑的结构和功能。活体神经成像的益处是显而易见的&#xff0c;而且在基础和临床神经科学中&#xff0c;神经成像已经取得了巨大进展。本文概述了利用活体神经成像研究大脑结构和功能的工作和成就。介绍了几种不同类型的结构MRI成像方法…...

【IAR工程】STM8S基于ST标准库读取DS1302数据

【IAR工程】STM8S基于ST标准库读取DS1302数据✨申明&#xff1a;本文章仅发表在CSDN网站&#xff0c;任何其他网站&#xff0c;未注明来源&#xff0c;见此内容均为盗链和爬取&#xff0c;请多多尊重和支持原创!&#x1f341;对于文中所提供的相关资源链接将作不定期更换。&…...

【SpringBoot】实现后端服务器发送QQ邮件验证码的功能

步骤一、添加邮件相关依赖二、配置邮件服务器三、发送邮件PS&#xff1a;SMTP 发送失败的解决方案一、添加邮件相关依赖 在 pom.xml 文件中添加 JavaMail 和 Spring Mail 相关的依赖。示例代码如下&#xff1a; <dependency><groupId>com.sun.mail</groupId&g…...

vue在input中输入后,按回车,提交数据

vue在input中输入后&#xff0c;按回车&#xff0c;提交数据 1.展示效果如下&#xff1a; 2.代码展示&#xff1a; <div><el-input v-model"toAddNameText" keyup.enter.native"toAddName()" placeholder"回车&#xff0c;即新增该竖杆名称…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时&#xff0c;需要使用外部低速晶振...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

【WebSocket】SpringBoot项目中使用WebSocket

1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖&#xff0c;添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...