101. 对称二叉树
给你一个二叉树的根节点 root , 检查它是否轴对称。
class Solution {
public:
bool isSymmetric(TreeNode* root) {
//使用队列来判断左右子树的内外侧
if(root == nullptr) return true;
TreeNode* l = root->left, *r = root->right;
que.push(l);
que.push(r);
while(!que.empty())
{
l = que.front();
que.pop();
r = que.front();
que.pop();
if (!l && !r) continue;
if ((!l || !r || (l->val != r->val))) return false;
que.push(l->left); que.push(r->right);
que.push(l->right); que.push(r->left);
}
return true;
}
private:
queue<TreeNode*> que;
};
class Solution {
public:
bool is_symmetric(TreeNode* left,TreeNode* right)
{
if(left==nullptr&&right==nullptr) return true;
if(left && right==nullptr) return false;
if(right && left==nullptr) return false;
if(right->val != left->val) return false;
bool l_judge = is_symmetric(left->left,right->right);
bool r_judge = is_symmetric(left->right,right->left);
return l_judge&r_judge;
}
bool isSymmetric(TreeNode* root) {
if(root==nullptr) return false;
bool judge = is_symmetric(root->left,root->right);
return judge;
}
};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理