当前位置:网站首页>【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;
}
};
边栏推荐
- Scala parallel collections, parallel concurrency, thread safety issues, ThreadLocal
- Machine learning (formula derivation and code implementation)--sklearn machine learning library
- dflow入门5——Big step & Big parameter
- HCIP实验(06)
- WPF 学习笔记《WPF样式基础》
- greenplum role /user 管理
- JMeter接口自动化发包与示例
- HCIP练习03(重发布)
- Guava的Service
- pytorch one-hot tips
猜你喜欢
随机推荐
Redis cluster concept and construction
AcWing 3391. 今年的第几天?(简单题)
基于二次型性能指标的燃料电池过氧比RBF-PID控制
English Grammar - Adverbial Clauses
Redisson实现分布式锁
HCIP练习03(重发布)
Logic Pro X built-in sound library list
获取JDcookie的方法
关于Unity自定义Inspector面板的一些自定义编辑器扩展
【无标题】
IDEA的database使用教程(使用mysql数据库)
机器学习(公式推导与代码实现)--sklearn机器学习库
Laya中关于摄像机跟随人物移动或者点击人物碰撞器触发事件的Demo
swiper分类菜单双层效果demo(整理)
Unity关于编辑器扩展自定义标签,方便扩展Inspector
牛客 - 最佳直播时间 (差分)
审批流设计
Gauva的ListenableFuture
The Transformer, BERT, GPT paper intensive reading notes
线性表








