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

leetcode hot100刷题日记——27.对称二叉树

在这里插入图片描述

方法一:递归法

class Solution {
public:bool check(TreeNode *left,TreeNode *right){//左子树和右子树的节点同时是空的是对称的if(left==nullptr&&right==nullptr){return true;}if(left==nullptr||right==nullptr){return false;}//检查左右子树的值相不相等,再检查左子树的左节点是不是和右子树的右节点相同,左子树的右节点是不是和右子树的左节点相同return left->val==right->val&&check(left->left,right->right)&&check(left->right,right->left);}bool isSymmetric(TreeNode* root) {return check(root->left,root->right);}
};

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

方法二:迭代法,用队列

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);}
};

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

http://www.lryc.cn/news/2392282.html

相关文章:

  • 高考加油(Python+HTML)
  • 贪心算法应用:Ford-Fulkerson最大流问题详解
  • UE5 Niagara 如何让四元数进行旋转
  • 从“黑箱”到透明化:MES如何重构生产执行全流程?
  • 探索Linux互斥:线程安全与资源共享
  • JWT安全:假密钥.【签名随便写实现越权绕过.】
  • Python爬虫实战:抓取百度15天天气预报数据
  • RV1126 + FFPEG多路码流项目
  • NodeJS 基于 Koa, 开发一个读取文件,并返回给客户端文件下载,以及读取文件形成列表和文件删除的代码演示
  • 为什么在我的Flask里面有两个路由,但是在网页里有一个却不能正确访问到智能体
  • 哈工大计算机系统2024大作业——Hello的程序人生
  • 2025年软件测试面试八股文(含答案+文档)
  • 【仿生系统】qwen的仿生机器人解决方案
  • Flutter3.22适配运行鸿蒙系统问题记录
  • 秋招Day10 - JVM - 内存管理
  • Spring Boot 3.5.0中文文档上线
  • Redisson学习专栏(一):快速入门及核心API实践
  • Pandas学习入门一
  • 基于Piecewise Jerk Speed Optimizer的速度规划算法(附ROS C++/Python仿真)
  • 关于 JavaScript 版本、TypeScript、Vue 的区别说明, PHP 开发者入门 Vue 的具体方案
  • 中断和信号详解
  • STM32八股【10】-----stm32启动流程
  • 游戏引擎学习第312天:跨实体手动排序
  • 智警杯备赛--数据库管理与优化及数据库对象创建与管理
  • MySQL 在 CentOS 7 环境下的安装教程
  • K8S集群主机网络端口不通问题排查
  • 【Elasticsearch】retry_on_conflict
  • Android Cameara2 + MediaRecorder 完成录像功能
  • python打卡day39
  • 3.8.5 利用RDD统计网站每月访问量