当前位置:网站首页>【LeetCode】101.对称二叉树
【LeetCode】101.对称二叉树
2022-08-03 08:30:00 【酥酥~】
题目
给你一个二叉树的根节点 root , 检查它是否轴对称。
示例 1:
输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3]
输出:false
提示:
树中节点数目在范围 [1, 1000] 内
-100 <= Node.val <= 100
题解
递归
比较根子树的左右子树是否对称
/** * 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 fun(TreeNode* node1,TreeNode* node2)
{
if(node1==nullptr && node2==nullptr)
return true;
if(!(node1 && node2))
return false;
if(node1->val != node2->val)
return false;
return (fun(node1->left,node2->right)&&fun(node1->right,node2->left));
}
bool isSymmetric(TreeNode* root) {
if(root==nullptr)
return false;
return fun(root->left,root->right);
}
};
迭代
/** * 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==nullptr)
return false;
queue<TreeNode*> myqueue1,myqueue2;
myqueue1.emplace(root->left);
myqueue2.emplace(root->right);
while(!myqueue1.empty() && !myqueue1.empty())
{
TreeNode* node1 = myqueue1.front();
TreeNode* node2 = myqueue2.front();
myqueue1.pop();
myqueue2.pop();
if(!node1 && !node2)
continue;
if((!node1 || !node2) || node1->val != node2->val)
return false;
myqueue1.emplace(node1->left);
myqueue1.emplace(node1->right);
myqueue2.emplace(node2->right);
myqueue2.emplace(node2->left);
}
return true;
}
};
边栏推荐
猜你喜欢
dflow部署简记
10分钟带你入门chrome(谷歌)浏览器插件开发
HCIA实验(07)
IDEA的database使用教程(使用mysql数据库)
How does Mysql query two data tables for the same fields in two tables at the same time
sqlite 日期字段加一天
MySQL1
【Kaggle实战】泰坦尼克号生存人数预测(从零到提交到Kaggle再到模型的保存与恢复)
基于SSM开发的的小区物业管理系统小程序源码
mysql5.7服务器The innodb_system data file 'ibdata1' must be writable导致无法启动服务器
随机推荐
开发工具之版本控制
WPS EXCEL 筛选指定长度的文本 内容 字符串
C# 一周入门高级编程之《C#-接口》Day Two
内存模型之可见性
sqlserver2019安装失败
Docker启动mysql
ArcEngine(四)MapControl_OnMouseDown的使用
word之个人设置
Guava-字符串工具
ArcEngine (5) use the ICommand interface to achieve zoom in and zoom out
Redisson实现分布式锁
Mysql的in和exists用法区别
【论文笔记】基于动作空间划分的MAXQ自动分层方法
greenplum role /user 管理
关于Unity,Laya学习,第一步加载Unity加载场景
Using pipreqs export requirements needed for the project. TXT (rather than the whole environment)
RViz报错: Error subscribing: Unable to load plugin for transport ‘compressed‘解决方法
ArcEngine(一)加载矢量数据
Add Modulo 10 (规律循环节,代码实现细节)
DeFi明斯基时刻:压力测试与启示