当前位置:网站首页>【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;
}
};
边栏推荐
猜你喜欢
随机推荐
FusionAccess软件架构、FusionAccess必须配置的四个组件、桌面发放流程、虚拟机组类型、桌面组类型
【无标题】
批量将PNG格式转化为JPG格式
scala reduce、reduceLeft 、reduceRight 、fold、foldLeft 、foldRight
行业洞察 | 如何更好的实现与虚拟人的互动体验?
AI中台序列标注任务:三个数据集构造过程记录
ArcEngine(五)用ICommand接口实现放大缩小
编程踩坑合集
AcWing 3391. 今年的第几天?(简单题)
国内IT市场还有发展吗?有哪些创新好用的IT运维工具可以推荐?
【论文笔记】一种基于启发式奖赏函数的分层强化学习方法
ArcEngine (six) use the tool tool to realize the zoom in, zoom out and translation of the pull box
flutter 应用 抓包
Guava-字符串工具
PowerShell:执行 Install-Module 时,不能从 URI 下载
LINGO 18.0软件安装包下载及安装教程
Alibaba Cloud SMS Sending
并发之多把锁和活跃性
QT中线程调用GUI主线程控件的问题
ArcEngine(二)加载地图文档