力扣热题100之对称二叉树

article/2025/6/28 20:53:17

题目

给你一个二叉树的根节点 root , 检查它是否轴对称。
在这里插入图片描述

代码

方法一:递归

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def isSymmetric(self, root: Optional[TreeNode]) -> bool:def check(left,right):if left is None and right is None:return Trueif left is None or right is None:return Falseif left.val!=right.val:return Falseout=check(left.left,right.right)inner=check(left.right,right.left)return out and innerreturn check(root.left,root.right) if root else True

方法二:队迭代

这里用的两个队分别存放根节点的左右两个子树的节点,当然也可以只使用一个队

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def isSymmetric(self, root: Optional[TreeNode]) -> bool:if root is None:return Truequeue1=deque([root.left])queue2=deque([root.right])while queue1 and queue2:n=len(queue1)for _ in range(n):node1=queue1.popleft()node2=queue2.popleft()if not node1 and not node2:continueif not node1 or not node2:return False               if node1.val != node2.val :return False            queue1.append(node1.left)queue1.append(node1.right)queue2.append(node2.right)queue2.append(node2.left)return True

只使用一个队的方法:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def isSymmetric(self, root: Optional[TreeNode]) -> bool:if root is None:return Truequeue=deque()        queue.append(root.left)queue.append(root.right)while queue:left=queue.popleft()right=queue.popleft()if not left and not right:continueif not left or not right:return Falseif left.val !=right.val:return Falsequeue.append(left.left)queue.append(right.right)queue.append(left.right)queue.append(right.left)return True

http://www.hkcw.cn/article/tQeWlSPEnK.shtml

相关文章

链式前向星图解

e[idx] b; 边之终点 ne[idx] h[a]; 谓之头插之边 h[a] idx ; 谓之指针更新 注意:上述以a为开头的一条链上的结点,在物理上都是a的邻接点,相邻的边用idx来标明序号,相邻的边之间有映射。 链式前向星的遍历 假设顶点 u 的邻接表…

MybatisPlus(含自定义SQL、@RequiredArgsConstructor、静态工具类Db)

大家在日常开发中应该能发现,单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。 因此,目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是…

R语言基础| 创建数据集

在R语言中,有多种数据类型,用以存储和处理数据。每种数据类型都有其特定的用途和操作函数,使得R语言在处理各种数据分析任务时非常灵活和强大: 向量(Vector): 向量是R语言中最基本的数据类型,它…

UE特效Niagara性能分析

开启Niagara调试器 开启显示概览 界面显示 🟩 上方绿色面板:Niagara DebugHud 这是 HUD(调试视图) 模式下的性能统计显示,内容如下: 项目含义SystemFilter: ShockWave_01当前选中的 Niagara 粒子系统名称…

MySQL——事务

目录 问题 什么是事务 为什么会有事务 事务版本支持 事务提交方式 事务常见操作 事务隔离级别 查看与设置隔离性 事务四种隔离级别 读未提交 读提交 不可重复读 串行化 一致性 理解隔离性 4个隐藏字段 undo日志 MVCC Read View RR 与 RC 本质区别 问题…

Vue-3-前端框架Vue基础入门之VSCode开发环境配置和Tomcat部署Vue项目

文章目录 1 安装配置VSCode1.1 安装中文语言插件1.2 主题颜色1.3 禁用自动更新1.4 开启代码提示设置1.5 安装open in browser插件2 安装配置nodejs2.1 配置环境变量2.2 npm与maven的区别2.3 使用npm避坑3 创建Vue项目3.1 两种创建方式3.2 package.json3.3 安装新的依赖3.4 运行…

Webpack依赖

Webpack到底怎么对我们的项目进行打包捏? 在webpack处理应用程序时,会根据命令或者配置文件找到入口文件 从入口开始,会生成一个依赖关系图,这个依赖关系图会包含应用程序中所需的所有模块(.js、css文件、图片、字体…

关于找不到符号,符号变量log的问题的解决方案

创建时间:06月02日 1、问题描述 最近在学习鱼皮的AI超级智能体项目过程中,遇到如下错误: java: 找不到符号符号: 变量 log位置: 类 com.liucc.aiagent.app.LoveApp2、排查思路 网上的常见解决思路主要是检查lombok插件是否安装、Enable…

mysql离线安装教程

1.下载地址: https://downloads.mysql.com/archives/community/ 2.上传安装包到系统目录,并解压 tar -xvf mysql-8.0.34-1.el7.x86_64.rpm-bundle.tar3.检查系统中是否存在mariadb的rpm包 rpm -qa|grep mariadb存在则删除 rpm -e xxx4.解压完后执行如下命令安装 sudo rpm -iv…

【git-首次初始化本地项目、关联远程仓库】

使用场景: windows系统本地首次创建的项目本地已存在但未关联为git项目 操作步骤 创建远程仓库 在gitee或github创建新仓库即可本地安装git 搜索“git安装教程”,按照步骤安装即可打开git中端,进入项目文件夹 cd E:\xxx备注:这…

AI驱动的文本转Mermaid图表工具Smart Mermaid

简介 什么是 Smart Mermaid ? Smart Mermaid 是一款基于 AI 技术的 Web 应用程序,能够将文本内容智能转换为 Mermaid 格式的代码,并将其渲染成可视化图表。用户只需输入文本描述,AI 即可生成相应的图表,支持多种图表类…

调用蓝耘API打造AI 智能客服系统实践教程

声明:文章是实验教程,不是广告 1.前言 在用户与人工客服的沟通中,等待时间长、需求难满足等问题频发,企业面临用户流失风险,用户渴望快速精准的答案,企业需要“开源节流”、“降本增效”。对此&#xff0c…

VM图像处理之图像二值化

什么是灰度? 灰度(Grayscale)是指将彩色图像转换为仅包含亮度信息(黑白过渡)的单通道图像的过程或结果。灰度图像中每个像素的数值代表该点的明暗程度,而不包含颜色信息。 亮度代替颜色: 灰度…

通信革新与网络安全探索与创新:开启未来之门

在科技飞速发展的当下,各领域的前沿探索正不断刷新着人类的认知与能力边界。脑机接口领域取得重大突破,上海阶梯医疗科技有限公司成功完成国内首例侵入式脑机接口系统前瞻性临床试验,受试者通过植入大脑的设备实现用意念玩游戏,为…

sigmastar实现SD卡升级

参考文章:http://wx.comake.online/doc/DD22dk2f3zx-SSD21X-SSD22X/customer/development/software/Px/zh/sys/P3/usb%20&%20sd%20update.html#21-sd 1、构建SD卡升级包 在project下make image完成后使用make_sd_upgrade_sigmastar.sh脚本打包SD卡升级包。 ./make_sd_up…

hook组件-useEffect、useRef

hook组件-useEffect、useRef useEffect 用法及执行机制 WillMount -> render -> DidMount ShouldUpdate -> WillUpdate -> render -> DidUpdate WillUnmount(只有这个安全) WillReceiveProps useEffect(callback) 默认所有依赖都更新useEffect(callback, [])&am…

Spring 5 响应式编程:构建高性能全栈应用的关键

本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续! 🚀 魔都架构师 | 全网30W技术追随者🔧 大厂分布式系统/数据中台实战专家🏆 主导交易系统百万级流量调优 & 车联网平台架构&a…

用“红烧鱼”类比说明卷积神经网络CNN的概念

我们用一个生活中的例子——「厨房做红烧鱼」 的场景,来类比卷积神经网络中多层卷积核的工作过程。你会发现,卷积层就像厨房里分工明确的厨师团队,逐步处理食材,最终完成一道复杂的菜品。 🐟 生活案例:厨房…

如何捍卫德国利益 默茨访美很“烧脑”

根据德国政府日前的声明,德国总理默茨将于当地时间5日访美,与美国总统特朗普举行首次单独会晤。△路透社报道截图德美关系一直是西方世界中最为重要的双边关系之一。然而,自美国总统特朗普提出“美国优先”理念以来,这对跨大西洋盟友间的裂痕不断加深。此前,白宫椭圆形办公…

Google机器学习实践指南(TensorFlow六大优化器)

🔥 Google机器学习实践指南(TensorFlow六大优化器) Google机器学习实战(12)-20分钟掌握TensorFlow优化器 一、优化器核心作用 ▲ 训练本质: 迭代求解使损失函数最小化的模型参数,关键要素: 特征工程&…