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

LeeCode 101.对称二叉树

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

提示:

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

进阶:你可以运用递归和迭代两种方法解决这个问题吗?

答案 && 测试代码:

#include <queue>void testLeeCode101() { // LeeCode101.对称二叉树// 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) {if (!root) return true;queue<TreeNode*> q;q.push(root->left);q.push(root->right);for (;!q.empty();) {// 取出队列前两个节点TreeNode* leftNode = q.front(); q.pop();TreeNode* rightNode = q.front(); q.pop();if (!leftNode && !rightNode) continue;if (!leftNode || !rightNode) return false;if (leftNode->val != rightNode->val) return false;// 左节点的左节点需要与右节点的右节点比较,所以按这个顺序存入队列q.push(leftNode->left);q.push(rightNode->right);// 同理,左节点的右节点、右节点的左节点一起存入队列q.push(leftNode->right);q.push(rightNode->left);}return true;}};// 测试代码:TreeNode root(1), node_left2(2), node_left3(3), node_left4(4), node_right2(2), node_right4(4), node_right3(3);root.left = &node_left2;root.right = &node_right2;node_left2.left = &node_left3;node_left2.right = &node_left4;node_right2.left = &node_right4;node_right2.right = &node_right3;Solution solution;cout << "isSymmetric ? " << (solution.isSymmetric(&root)? "true" : "false") << endl;
}

打印:

ok.  思路是逐步比较树的每一层的对应节点值。每次比较后,将下一层的要比较节点按照顺序加入到队列中。遍历队列时是同时取出队列前俩个比较。

相关文章:

  • 互联网大厂Java面试场景:从缓存到容器化的技术问答
  • H2数据库源码学习+debug, 数据库 sql、数据库引擎、数据库存储从此不再神秘
  • 代码随想录算法训练营第六十六天| 图论11—卡码网97. 小明逛公园,127. 骑士的攻击
  • OpenAI推出Codex — ChatGPT内置的软件工程Agents
  • (三)MMA(KeyCloak身份服务器/OutBox Pattern)
  • Git基础原理和使用
  • 一个stm32工程从底层上都需要由哪些文件构成
  • 鸿蒙AI开发:10-多模态大模型与原子化服务的集成
  • C++23:修正常量迭代器、哨兵和范围
  • 【NLP 75、如何通过API调用智谱大模型】
  • Spark,连接MySQL数据库,添加数据,读取数据
  • 【自然语言处理与大模型】向量数据库技术
  • 通俗解释Transformer在处理序列问题高效的原因(个人理解)
  • 掌握LINQ:查询语法与方法语法全解析
  • CodeBuddy初探
  • React Native 0.68 安装react-native-picker报错:找不到compile
  • 使用Faker库生成测试数据的完整指南
  • OpenCV-python数学形态学
  • JavaScript性能优化实战(12):大型应用性能优化实战案例
  • C语言内存函数与数据在内存中的存储
  • 招商基金总经理徐勇因任期届满离任,“老将”钟文岳回归接棒
  • 这位中国电影早期的全能奇才,90年前唱响国歌
  • 第十届青春文学奖揭晓,梁晓声获特别奖
  • 义乌至迪拜“铁海快线+中东快航”首发,物流成本降低18%
  • 柬埔寨果农:期待柬埔寨榴莲走进中国市场
  • 特朗普:将于19日分别与普京和泽连斯基通话