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

力扣刷题 -- 101.对称二叉树

 题目与示例

 思路分析

对称二叉树,说白了就是镜像对称,要解决这道题,我们需要分析镜像的特点。

就以示例1来说:根结点的左孩子和右孩子的值相同;

再进一步看,欸发现 2 结点的左孩子和右侧 2 结点的右孩子是相同的;

左侧 2 结点的右孩子和 右侧 2 结点的左孩子相同;

欸,是不是我只要满足结点的左孩子的值和结点右孩子的值一样,结点右孩子和结点左孩子一样就可以解决这道题呢?

这里我们要注意传参,如果只有根结点那还挺好处理,如果左右子树都不为空,我们要分别处理2棵子树!!!

欸,有人问为什么要传2个参数?

我们知道二叉树的遍历是需要递归的,只要遇到递归结束的条件,才会依次销毁空间返回;只有左侧递归处理完,才能处理右侧,但在这里我们要两侧都遍历。

注意:有两种特殊情况

情况1:空树,属于对称的树;

情况2:树只有根结点,是属于对称的树;

情况3:有1棵子树为空树(即左子树为空但右子树不为空;左子树不为空右子树为空),不是对称的树。

 千万不能漏掉这两种情况!!!

代码实现 

 typedef struct TreeNode TreeNode;//判断是否对称bool isok(struct TreeNode* root1,struct TreeNode* root2){//情况2:树只有根结点,是属于对称的树;if(root1 == NULL && root2 == NULL){return true;}//情况3:有1棵子树为空树if(root1 == NULL || root2 == NULL){return false;}if(root1->val != root2->val){return false;}return isok(root1->left,root2->right)  && isok(root1->right,root2->left);}
bool isSymmetric(struct TreeNode* root) {//情况1:空树if(root == NULL){return true;}return isok(root->left,root->right);
}
http://www.lryc.cn/news/596245.html

相关文章:

  • 贪心算法Day3学习心得
  • LeetCode 刷题【11. 盛最多水的容器】
  • 数据库 × 缓存双写策略深度剖析:一致性如何保障?
  • 《3D printed deformable sensors》论文解读
  • EasyMan 数字人服务全面焕新,交互型AI数字人助推孪生体验全新升级
  • GoLang教程006:循环控制语句
  • 数据结构 之 【排序】(直接选择排序、堆排序、冒泡排序)
  • 自编码器表征学习:重构误差与隐空间拓扑结构的深度解析
  • Dockerfile 详解
  • 鸿蒙卡片开发保姆级教程
  • AI创作系列第22篇:前端缓存与更新机制重构 - 表情包系统的全面升级
  • anchor 智能合约案例6 之 token_lottery
  • 假发行业数字化突围,外贸ERP重构外协管理引擎,助力效率飞跃
  • 34、鸿蒙Harmony Next开发:使用动画-转场动画
  • Jmeter使用 - 2
  • Chrome 开发环境屏蔽 CORS 跨域限制
  • PHICOMM(斐讯)N1盒子 - Armbian25.05(Debian 12)刷入U盘/EMMC
  • SQL 中 JOIN 顺序对性能的影响
  • FastDFS 6.11.0 单机环境搭建与测试(附 Nginx 集成)+ docker构建+k8s启动文件
  • 浏览器地址栏输入URL回车后白屏分析
  • Jenkins接口自动化测试(构建)平台搭建
  • Apache Ignite 中事务的使用方式和机制
  • Excel工具
  • ROS个人笔记
  • Qt Creator集成开发环境使用指南
  • K 近邻算法(K-Nearest Neighbors, KNN)详解及案例
  • 聊聊原生 CSS 变量:让样式更灵活的“魔法”
  • 大模型推理环境安装过程中踩坑记录
  • 野外具身视觉跟踪:北大团队TrackVLA让AI视觉跟踪进化到2.0时代
  • Springboot使用外部的Servelt容器(最简单的方式)