当前位置:网站首页>【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;
}
};
边栏推荐
猜你喜欢
随机推荐
mysql5.7服务器The innodb_system data file 'ibdata1' must be writable导致无法启动服务器
《剑指Offer》刷题之打印从1到最大的n位数
实时目标检测新高地之#YOLOv7#更快更强的目标检测器
Evaluate:huggingface评价指标模块入门详细介绍
并发之ReentrantLock
LAN技术-2免费ARP
tolower函数
Using pipreqs export requirements needed for the project. TXT (rather than the whole environment)
行业 SaaS 微服务稳定性保障实战
Redisson实现分布式锁
IDEA的database使用教程(使用mysql数据库)
The Transformer, BERT, GPT paper intensive reading notes
Charles抓包工具学习记录
分析型数据库性能测试总结
redis键值出现 xacxedx00x05tx00&的解决方法
HCIP练习03(重发布)
redis stream 实现消息队列
JMeter接口自动化发包与示例
图解Kernel Device Tree(设备树)的使用
ArcEngine(五)用ICommand接口实现放大缩小