【leetcode面试经典150题】71. 对称二叉树(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C++语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致)

【题目描述】

给你一个二叉树的根节点 root , 检查它是否轴对称。

【示例一】

输入:root = [1,2,2,3,4,4,3]
输出:true

【示例二】

输入:root = [1,2,2,null,3,null,3]
输出:false

【提示及数据范围】

  • 树中节点数目在范围 [1, 1000] 内
  • -100 <= Node.val <= 100

【代码】

// 方法一:递归class Solution {
public:bool check(TreeNode *p, TreeNode *q) {if (!p && !q) return true;if (!p || !q) return false;return p->val == q->val && check(p->left, q->right) && check(p->right, q->left);}bool isSymmetric(TreeNode* root) {return check(root, root);}
};// 方法二:迭代class Solution {
public:bool check(TreeNode *u, TreeNode *v) {queue <TreeNode*> q;q.push(u); q.push(v);while (!q.empty()) {u = q.front(); q.pop();v = q.front(); q.pop();if (!u && !v) continue;if ((!u || !v) || (u->val != v->val)) return false;q.push(u->left); q.push(v->right);q.push(u->right); q.push(v->left);}return true;}bool isSymmetric(TreeNode* root) {return check(root, root);}
};

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

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

相关文章

Mybatis框架怎么查看执行的sql语句

文章目录 一、打开idea搜索mybatis SimpleExecutor类二、找到类中doQuery方法&#xff0c;并打断点二、发请求后&#xff0c;查看boundSql 一、打开idea搜索mybatis SimpleExecutor类 org.apache.ibatis.executor.SimpleExecutor二、找到类中doQuery方法&#xff0c;并打断点 …

外贸订单从初始到成交,都涉及哪些环节?

前言 经常听到这个言论&#xff1a;做外贸不就是找到国外客户&#xff0c;用英文把产品推荐给他们&#xff0c;然后收款。就这么easy&#xff0c;能有多复杂&#xff1f; 没那么简单&#xff0c;外贸是和内销有相通之处&#xff0c;但是过程却完全不同。涉及到的环节还是挺复杂…

为什么要分库分表?(设计高并发系统的时候,数据库层面该如何设计?)

目录 1.分表 2.分库 说白了&#xff0c;分库分表是两回事儿&#xff0c;大家可别搞混了&#xff0c;可能是光分库不分表&#xff0c;也可能是光分表不分库&#xff0c;都有可能。 我先给大家抛出来一个场景。 假如我们现在是一个小创业公司(或者是一个 BAT …

Spark02

Spark02 一. PyCharm创建PySpark项目1. 创建项目,配置环境2. 连接到远服务器3. 程序入口 一. PyCharm创建PySpark项目 1. 创建项目,配置环境 2. 连接到远服务器 3. 程序入口

【THM】Windows Privilege Escalation(Windows权限提升)-初级渗透测试

介绍 在渗透测试期间,您通常可以使用非特权用户访问某些 Windows 主机。非特权用户将拥有有限的访问权限,仅包括其文件和文件夹,并且无法在主机上执行管理任务,从而阻止您完全控制目标。 本房间涵盖攻击者可用来在 Windows 环境中提升权限的基本技术,允许您在可能的情况…

什么是分解交易?fpmarkets一分钟讲清楚

分解交易是什么&#xff1f;用这种交易方式能赚到钱吗&#xff1f;这种策略有什么好处&#xff1f;有什么弊端呢&#xff1f;今天fpmarkets澳福一分钟给各位投资者讲清楚。 其实在fpmarkets看来分解交易就是一种很简单的外汇策略&#xff0c;主要信号是趋势线的分解。看涨趋势线…

this指向

调用方式示例 函数中this的指向通过new调用new method()新对象直接调用method()全局对象通过对象调用obj.method()前面的对象call、apply、bindmethod.call(ctx)第一个参数 我们说的this指向是一个函数里边的this指向&#xff0c;如果这个this不在函数里边&#xff0c;那th…

ShardingSphere-JDBC快速入门

ShardingSphere-JDBC读写分离快速入门 一、ShardingSphere-JDBC 读写分离1.创建springboot程序1.1 添加依赖1.2 java代码1.3 配置 2.测试 二、ShardingSphere-JDBC垂直分片1.创建springboot程序1.1 导入依赖1.2 java代码1.3 配置 2.测试 三、ShardingSphere-JDBC水平分片1.创建…

WPForms Pro插件下载:简化您的在线表单构建,提升用户互动

在当今的数字化世界中&#xff0c;表单是网站与用户互动的关键。无论是收集信息、处理订单还是进行调查&#xff0c;一个好的表单可以极大地提升用户体验和转化率。WPForms Pro插件&#xff0c;作为一款专业的WordPress表单构建工具&#xff0c;旨在帮助您轻松创建美观、功能强…

MySQL无法打开情况下读取frm文件的表结构

一、背景&#xff1a; 开发人员通过MySQL客户端工具&#xff0c;可以访问MySQL5.7.6&#xff0c;可以访问具体的DB&#xff0c;可以查看小写表的数据&#xff0c;但是无法查看大写表的数据&#xff0c;报错信息为“table does not exist”。 二、检查与分析&#xff1a; ssh登录…

mac如何通过Teminal查找本机ip地址

方法1 ifconfig ifconfig终端中使用 ifconfig 可以查看本地 ip 但是看到的信息太多了&#xff0c;我们只是想要一个本机ip而已 方法2 ifconfig en0 ifconfig en0相比方法1我们算是直接获取到了本机ip&#xff0c;但是第一眼看到还是需要反应一段时间 方法3 精准获取IP ifcon…

跑腿业务和支付业务的具体实现流程

校园云项目 跑腿业务的具体业务分析 该流程适用于很多接单相关的业务场景&#xff0c;或多或少都可以从中得到启发&#xff1b; 整个流程描述&#xff1a; 任务发布&#xff1a; 用户在平台上发布任务&#xff0c;描述需要完成的任务内容&#xff0c;包括取件地址、送达地址…

基于文件流操作文件系统

stream 文件流ScannerWriter遍历目录删除指定文件把目标文件复制为源文件小结 文件流 文件的内容本质上都是来自于硬盘,而硬盘由操作系统管理. 使用java来操作文件,就要用到java的api.这里涉及一系列的类: 字节流: InputStream和OutputStream是以操作字节为单位(二进制文件). …

MySQL中的并发控制,读写锁,和锁的粒度

MySQL中的并发控制&#xff0c;读写锁&#xff0c;和锁的粒度 并发控制的概述 在数据库系统中&#xff0c;并发控制是一种用于确保当多个用户同时访问数据库时&#xff0c;系统能够提供数据的一致性和隔离性的机制。MySQL支持多种并发控制技术&#xff0c;其中包括锁机制、多…

pytorch-解决过拟合之regularization

目录 1.解决过拟合的方法2. regularization2. regularization分类3. pytorch L2 regularization4. 自实现L1 regularization5. 完整代码 1.解决过拟合的方法 更多的数据降低模型复杂度 regularizationDropout数据处理早停止 2. regularization 以二分类的cross entropy为例&…

YesPMP众包平台最新项目

YesPMP一站式互联网众包平台&#xff0c;最新外包项目&#xff0c;有感兴趣的用户可进入平台参与竞标。 &#xff08;竞标后由项目方直接与服务商联系&#xff0c;双方直接对接&#xff09; 1.查看项目&#xff1a;个人技术-YesPMP平台 2.查看项目&#xff1…

运维 kubernetes(k8s)基础学习

一、容器相关 1、发展历程&#xff1a;主机–虚拟机–容器 主机类似别墅的概念&#xff0c;一个地基上盖的房子只属于一个人家&#xff0c;很多房子会空出来&#xff0c;资源比较空闲浪费。 虚拟机类似楼房&#xff0c;一个地基上盖的楼房住着很多人家&#xff0c;相对主机模式…

大数据学习第四天

文章目录 yaml 三大组件的方式交互流程hive 使用安装mysql(hadoop03主机)出现错误解决方式临时密码 卸载mysql (hadoop02主机)卸载mysql(hadoop01主机执行)安装hive上传文件解压解决版本差异修改hive-env.sh修改 hive-site.xml上传驱动包初始化元数据在hdfs 创建hive 存储目录启…

人工智能基础-Python之Pandas库教程

文章目录 前言一、Pandas是什么&#xff1f;二、使用步骤1.引入库2.数据读取2.1 数据类型2.2 数据读取1.常见操作2.txt读取 3.pandas的数据结构3.1 Series1.属性2.创建Series3.查询 3.2 DataFrame1.创建DataFrame 4.查询数据4.1 data.loc 根据行列标签值进行查询1.使用单个labe…

javaWeb项目-社区医院管理服务系统功能介绍

项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 1、Java技术 Java语…