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

力扣HOT100之二叉树:101. 对称二叉树


这道题我本来想着挑战一下自己,尝试着用迭代的方法来做,然后就是用层序遍历,将每一层的元素收集到一个临时的一维向量中,然后再逐层判断每一层是否都是轴对称的,一旦发现某一层不是轴对称的,就直接return false,当所有的层都遍历结束后,都没有出现return false的情况,就说明每一层都是轴对称的,此时直接return true即可。注意,再判断每一层是否为轴对称时,千万不能用栈来匹配(类似于括号匹配的思路),因为下面的情况用栈会判定为轴对称,但是实际上是非轴对称的。(当时被这个测试样例折磨到红温)

此外,当前层的下一层如果至少有一个非空节点,那么下一层的空节点也必须加入,否则判定也会出问题。

/*** 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 isSymmetric(TreeNode* root) {//用迭代来解决这个问题queue<TreeNode*> My_Queue;stack<TreeNode*> My_Stack;My_Queue.push(root);while(!My_Queue.empty()){int size = My_Queue.size();vector<TreeNode*> temp;while(size > 0){TreeNode* node = My_Queue.front();My_Queue.pop();size--;if(node){My_Queue.push(node -> left);temp.emplace_back(node -> left);My_Queue.push(node -> right);temp.emplace_back(node -> right);} }for(int left = 0, right = temp.size() - 1; left < right;){if((!temp[left] && !temp[right]) || ((temp[left] && temp[right]) && (temp[left] -> val == temp[right] -> val))){left++;right--;}else return false;}}return true;}
};

相关文章:

  • 工业协议跨界实录:零基础玩转PROFINET转EtherCAT主站智能网关
  • 51c大模型~合集127
  • MySQL 8.0 OCP 1Z0-908 题目解析(1)
  • 使用 OAuth 2.0 保护 REST API
  • Swift实战:如何优雅地从二叉搜索树中挑出最接近的K个值
  • dp自动化登陆之hCaptcha 验证码
  • websocketpp 安装及使用
  • wordpress主题分享
  • Datawhale AI春训营 day
  • 每日算法刷题Day4 5.12:leetcode数组4道题,用时1h
  • IDEA 插件推荐:提升编程效率
  • LeetCode 2094.找出 3 位偶数:遍历3位偶数
  • 101alpha---第10
  • 16.three官方示例+编辑器+AI快速学习webgl_buffergeometry_lines_indexed
  • 嵌入式软件--stm32 DAY 6 USART串口通讯(下)
  • js fetch流式请求 AI动态生成文本,实现逐字生成渲染效果
  • 「光域」系列激光测距传感器:以光为尺,重构空间认知边界
  • Python 处理图像并生成 JSONL 元数据文件 - 固定text版本
  • Oracle19c中的全局临时表
  • 使用vite重构vue-cli的vue3项目
  • 中国恒大:清盘人向香港高等法院申请撤回股份转让
  • 十三届全国政协经济委员会副主任张效廉被决定逮捕
  • 冷冰川谈黑白
  • 马上评丨规范隐藏式车门把手,重申安全高于酷炫
  • 首批证券公司科创债来了!拟发行规模超160亿元
  • OpenAI任命了一位新CEO