
力扣101_对称二叉树Symmetric_Tree
发布日期:2021-05-08 11:10:43
浏览次数:20
分类:精选文章
本文共 1113 字,大约阅读时间需要 3 分钟。
递归
class Solution { public: bool isSymmetric(TreeNode* root) { return check(root, root); } bool check(TreeNode* tree1, TreeNode* tree2) { if(!tree1 && !tree2) return true; if(!tree1 || !tree2) return false; return tree1->val == tree2->val && check(tree1->left, tree2->right) && check(tree1->right, tree2->left); }};
迭代
和之前对二叉树的处理类似,可以通过队列的方式处理递归的过程。在首次创建队列时将root入队2次即可,每次提取两个结点并比较它们的值(队列中每两个连续的结点应该是相等的,而且它们的子树互为镜像),然后将两个结点的左右子结点按相反的顺序插入队列中。当队列为空时,或者我们检测到树不对称(即从队列中取出两个不相等的连续结点)时,该算法结束。
class Solution{ public: bool isSymmetric(TreeNode* root){ //使用迭代的方法 return check(root, root); } bool check(TreeNode* t1, TreeNode* t2) { queueq; q.push(t1); q.push(t2); while(!q.empty()){ auto l = q.front(); q.pop(); auto r = q.front(); q.pop(); if(!l && !r) continue; if(!l|| !r ||(l->val != r->val)) return false; q.push(l->left); q.push(r->right); q.push(l->right); q.push(r->left); } return true; }};
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年03月26日 20时16分44秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
云原生2.0时代下,DevOps实践如何才能更加高效敏捷?
2021-05-09
技巧收藏|10个JavaScript常用数组操作方法
2021-05-09
两种端到端通用目标检测方法
2021-05-09
云小课 | 守护网络安全不是问题,iptables的四表五链为你开启“八卦阵”
2021-05-09
LiteOS内核源码分析:任务栈信息
2021-05-09
23种设计模式之迭代器模式
2021-05-09
23种设计模式之组合模式
2021-05-09
mysql zip安装
2021-05-09
mysql修改密码
2021-05-09
virtualbox中 Kali Linux安装增强功能
2021-05-09
virtualbox中 Ubuntu挂载共享文件夹
2021-05-09
Python 内置函数笔记
2021-05-09
BootStrapTable 错误
2021-05-09
PHP 脚本不报错
2021-05-09
代码整洁之道小结
2021-05-09
悲观锁与乐观锁
2021-05-09
js new Date 创建时间默认是8点
2021-05-09
Python实现cmd命令连续执行
2021-05-09
罗马数字
2021-05-09
IO多路复用小故事
2021-05-09