当前位置:网站首页>【LeetCode】101. Symmetric Binary Tree
【LeetCode】101. Symmetric Binary Tree
2022-08-03 08:38:00 【Cake cake ~】
题目
给你一个二叉树的根节点 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
题解
递归
Compare the left and right subtrees of the root subtree if they are symmetric
/** * 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;
}
};
边栏推荐
猜你喜欢
服务器资源监控工具-nmon、nmon_analyser
"Swordsman Offer" brush questions print from 1 to the largest n digits
Exception: Dataset not found. Solution
36氪详情页AES
[Kaggle combat] Prediction of the number of survivors of the Titanic (from zero to submission to Kaggle to model saving and restoration)
The Transformer, BERT, GPT paper intensive reading notes
HCIA实验(07)
Charles packet capture tool learning record
Scala parallel collections, parallel concurrency, thread safety issues, ThreadLocal
pytorch one-hot 小技巧
随机推荐
HCIP练习03(重发布)
10 minutes to get you started chrome (Google) browser plug-in development
word之个人设置
Docker starts mysql
Nacos使用实践
Unity关于编辑器扩展自定义标签,方便扩展Inspector
QT中线程调用GUI主线程控件的问题
BOM系列之localStorage
AI中台序列标注任务:三个数据集构造过程记录
Path Prefixes (倍增!树上の二分)
积分商城系统设计
QImage的指针问题
分析型数据库性能测试总结
Batch PNG format can be converted to JPG format
dflow部署简记
What are pseudo-classes and pseudo-elements?The difference between pseudo-classes and pseudo-elements
多线程下的单例模式
36氪详情页AES
HCIP练习02(OSPF)
文章列表的显示 以及创建文章 还有文章详情的基本