当前位置:网站首页>【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;
}
};
边栏推荐
猜你喜欢
110道 MySQL面试题及答案 (持续更新)
FusionAccess软件架构、FusionAccess必须配置的四个组件、桌面发放流程、虚拟机组类型、桌面组类型
10分钟带你入门chrome(谷歌)浏览器插件开发
内存模型之可见性
线程介绍与使用
[Kaggle combat] Prediction of the number of survivors of the Titanic (from zero to submission to Kaggle to model saving and restoration)
数据监控平台
36氪详情页AES
dflow入门3——dpdispatcher插件
Evaluate: A detailed introduction to the introduction of huggingface evaluation indicator module
随机推荐
数仓4.0(二)------ 业务数据采集平台
Mysql如何对两张表的相同字段,同时查询两张数据表
内存模型之可见性
timestamp
如何在安装GBase 8c数据库的时候,报错显示“Host ips belong to different cluster?
Arduino框架下对ESP32 NVS非易失性存储解读以及应用示例
分析型数据库性能测试总结
【论文笔记】基于动作空间划分的MAXQ自动分层方法
进程的创建
【TPC-DS】DF的SQL(Data Maintenance部分)
mysql的innodb存储引擎和myisam存储引擎的区别
10分钟带你入门chrome(谷歌)浏览器插件开发
110道 MySQL面试题及答案 (持续更新)
判断根节点是否等于子节点之和
36氪详情页AES
合并两个有序链表
【愚公系列】2022年07月 Go教学课程 026-结构体
ArcEngine (2) loading the map document
Qt 下拉复选框(MultiSelectComboBox)(一) 实现下拉框多选,搜索下拉框内容
HCIP练习03(重发布)