165.二叉树:对称二叉树(力扣)

代码解决

/*** 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 compare(TreeNode* left, TreeNode* right){// 两个子节点都为空,说明是对称的if (left == nullptr && right == nullptr) return true;// 只有一个子节点为空,说明不对称if (left == nullptr || right == nullptr) return false;// 两个子节点的值不相等,说明不对称if (left->val != right->val) return false;// 递归比较外侧和内侧节点bool outside = compare(left->left, right->right);bool inside = compare(left->right, right->left);// 只有外侧和内侧都对称,整个树才对称return outside && inside;}bool isSymmetric(TreeNode* root) {// 空树是对称的if (root == nullptr) return true;// 检查左右子树是否对称return compare(root->left, root->right);}
};
  1. 定义一个比较函数 compare,它接受两个 TreeNode* 类型的参数,代表要比较的两个子节点。
  2. 在 compare 函数中,首先检查两个子节点是否都为空,如果是,则返回 true
  3. 如果只有一个子节点为空,则返回 false
  4. 如果两个子节点的值不相等,则返回 false
  5. 递归地调用 compare 函数来比较外侧节点(左子节点的左子节点和右子节点的右子节点)和内侧节点(左子节点的右子节点和右子节点的左子节点)。
  6. 如果外侧和内侧节点都对称,则返回 true,否则返回 false
  7. 在 isSymmetric 函数中,首先检查根节点是否为空,如果是,则返回 true
  8. 调用 compare 函数来比较根节点的左子树和右子树是否对称。

这个算法的时间复杂度是 O(n),因为每个节点都会被访问一次,其中 n 是树中节点的数量。空间复杂度也是 O(n),因为需要存储递归调用的栈。

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

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

相关文章

记录一个 Hudi HBase 依赖冲突问题及解决方案

前言 如题:记录一个 Hudi HBase 依赖冲突问题及解决方案 版本 Hudi 0.13.0Spark 3.2.3异常 ERROR Javalin: Exception occurred while servicing http-request java.util.concurrent.CompletionException: java.lang.NoSuchMethodError:

python_06

56、继承 # 继承:实现代码的重用,相同的代码不需要重复的编写class Animal:def sleep(self):print("睡觉")def eat(self):print("吃饭")# 定义了一个dog类,让它继承自Animal类,dog就拥有了,动物类…

Apple HEVC Stereo Video

1. 前言 为左眼和右眼携带立体视频视图的能力产生了更丰富的用户体验。 立体视频(有时称为“3D 视频”)向用户的左眼呈现一个图像,向用户的右眼呈现另一幅图像(通常是相关的)以产生立体效果,定义为&#x…

JDBC学习笔记(二)进阶篇

一、JDBC 扩展 1.1 实体类和ROM 实体类代码: package com.atguigu.advanced.pojo;//类名就是数据库表的 t_ 后面的单词全写 public class Employee {private Integer empId;//emp_idprivate String empName;//emp_nameprivate Double empSalary;//emp_salarypriva…

太极图形课——渲染——光线追踪实战第一部分呢

根据概念部分我们逐步通过太极实现光线追踪 总共可以分为5步 第一步:如何发射出一道光? 首先明确何为一道光,光从我们眼睛(摄像机)射出,那么在三维虚拟世界里,我们可以认为这道光就是一条射线…

【Docker学习】docker login/logout

docker login和docker logout是两个相反的操作,分别是登入/登出注册表(镜像仓库)。我们一般说的公共镜像仓库(docker hub)是不需要登入的,但私有的镜像仓库通常是需要登入(安全考虑)…

【TB作品】msp430g2553单片机,读取GY-30,光强传感器,显示到oled

硬件 七针 OLED * P2.0 CS* P2.1 DC* P2.2 RES* P2.3 D1 SDA* P2.4 D0* VCC 3.3V* GND GNDGY-30 //gy-30 //SCL--P1.4 //SDA--P1.5 //VCC--3.3V //GND--GND //ADDR--GND部分程序 #include <msp430.h> #include "gy30.h" #include "oled.h"f…

凸包算法Revit实例

ConvertHullAlgorithm &#xff08;凸包算法&#xff09; 引用 《计算几何》-导言&#xff1a;凸包的例子 前言 算法的基本逻辑与理念来自于《计算几何》这本书&#xff0c;后面其他几章的演示也都会在Revit中实现调试&#xff0c;希望能够每个算法都找一个合适的实现方向在R…

Pytorch实用教程:pytorch中 argmax(dim)用法详解

argmax(dim) 是 PyTorch 中的一个函数,用于找出指定维度上最大值的索引。argmax 函数是在多维张量上进行操作的,通过 dim 参数可以指定在哪一个维度上查找最大值。 参数解释 dim: 指定要在哪个维度上执行寻找最大值的操作。维度的索引从 0 开始,对应于张量的各个轴。返回值…

实现从微信聊天记录中获取信息,整理:具体的项目名称,要整理的日期范围,关键数据点(如任务完成度,主要负责人,重要的待解决问题)

使用开源模型从微信聊天记录中获取并整理信息&#xff0c;可以通过以下步骤实现&#xff1a; 数据收集&#xff1a; 确保合法合规地获取聊天记录。这可能需要用户的明确授权。将微信聊天记录导出为可处理的格式&#xff0c;例如文本文件或JSON。 数据预处理&#xff1a; 清洗数…

美国遛宠黑科技掀起热潮,沃尔玛跨境新品解析

美国遛宠黑科技掀起热潮&#xff0c;这一趋势不仅反映了宠物主人们对于宠物关怀的日益加深&#xff0c;也展示了科技在日常生活中的广泛应用。在这一热潮中&#xff0c;创新遛宠产品为宠物主人带来便利与体验。沃尔玛作为全球零售巨头&#xff0c;紧跟趋势&#xff0c;推出跨境…

用C#(WinForm)开发触摸屏,体验感满满

用C#&#xff08;WinForm&#xff09;开发触摸屏&#xff0c;体验感满满

加油卡APP系统开发,打造便利的汽车加油模式

随着人们生活水平的提高&#xff0c;汽车已经成为了家中必备的交通工具&#xff0c;因此&#xff0c;汽车加油也成为了大众经常要做的事。在互联网的发展下&#xff0c;汽车加油卡APP出现在了居民的生活中。加油卡系统与各个加油站合作&#xff0c;提供各种优惠折扣&#xff0c…

【Unity美术】spine软件的使用—2D动画的制作

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;就业…

Android Bundle的作用

Android Bundle的作用 Bundle作用 Bundle作用 Bundle主要用于传递数据&#xff1b;它保存的数据&#xff0c;是以key-value(键值对)的形式存在的传递的数据可以是boolean、byte、int、long、float、double、string等基本类型或它们对应的数组&#xff0c;也可以是对象或对象数…

透视亚马逊云科技中国峰会:生成式AI全面提速,加速行业应用落地

导读&#xff1a;亚马逊云科技在中国&#xff0c;生成式AI与行业化战略齐头并进。 “亚马逊云科技致力于成为企业构建和应用生成式AI的首选。” 近日2024亚马逊云科技中国峰会上&#xff0c;亚马逊全球副总裁、亚马逊云科技大中华区总裁储瑞松分享了亚马逊云科技中国业务最新进…

C#面:请解释ASP.NET中的web页面与其隐藏类之间的关系

在 ASP.NET 中&#xff0c;每个web页面都对应着一个隐藏类&#xff0c;这个隐藏类是由 ASP.NET 框架自动生成的。这个隐藏类继承自Page类&#xff0c;它是 ASP.NET 页面的基类。隐藏类的命名规则是以页面的名称为基础&#xff0c;加上一个下划线和一串随机生成的字符。 隐藏类…

通过ffmpeg 将wav格式转为mp3格式.

通过ffmpeg实现将wav转为mp3格式.需要下载一个ffmpeg放到执行文件所在目录. 我ffmpeg的下载地址为:ffmpeg.exe下载-ffmpeg.exe32&#xff06;64位下载免费版-旋风软件园 use ShellAPI; {$R *.dfm}procedure ConvertWavToMp3(const InputFile, OutputFile: string); varExecu…

Linux下文件权限管理

任务要求 1. 在跳板机上为开发部门专门创建一个目录&#xff0c;只允许开发部门所有员工使用该目录 2. 其他人员不能进入和查看该目录里的内容 任务分解 1. 在跳板机给开发部门创建目录 2. 对该目录做好权限的管控工作 只允许开发部门的所有人使用&#xff0c;创建、删除…

无人机航迹规划:人工原生动物优化器(Artificial Protozoa Optimizer ,APO)求解无人机路径规划,提供MATLAB代码

一、无人机模型介绍 单个无人机三维路径规划问题及其建模_无人机路径规划场景建模-CSDN博客 参考文献&#xff1a; [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、人工原生动物优化算法APO求解无人机路径规…