【leetcode面试经典150题】71. 对称二叉树(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C++语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致)

【题目描述】

给你一个二叉树的根节点 root , 检查它是否轴对称。

【示例一】

输入:root = [1,2,2,3,4,4,3]
输出:true

【示例二】

输入:root = [1,2,2,null,3,null,3]
输出:false

【提示及数据范围】

  • 树中节点数目在范围 [1, 1000] 内
  • -100 <= Node.val <= 100

【代码】

// 方法一:递归

class Solution {
public:
    bool check(TreeNode *p, TreeNode *q) {
        if (!p && !q) return true;
        if (!p || !q) return false;
        return p->val == q->val && check(p->left, q->right) && check(p->right, q->left);
    }

    bool isSymmetric(TreeNode* root) {
        return check(root, root);
    }
};


// 方法二:迭代

class Solution {
public:
    bool check(TreeNode *u, TreeNode *v) {
        queue <TreeNode*> q;
        q.push(u); q.push(v);
        while (!q.empty()) {
            u = q.front(); q.pop();
            v = q.front(); q.pop();
            if (!u && !v) continue;
            if ((!u || !v) || (u->val != v->val)) return false;

            q.push(u->left); 
            q.push(v->right);

            q.push(u->right); 
            q.push(v->left);
        }
        return true;
    }

    bool isSymmetric(TreeNode* root) {
        return check(root, root);
    }
};

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-24 15:02:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-24 15:02:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-24 15:02:05       82 阅读
  4. Python语言-面向对象

    2024-04-24 15:02:05       91 阅读

热门阅读

  1. 【无标题】

    2024-04-24 15:02:05       34 阅读
  2. ES8导出的mapping批量修改索引名

    2024-04-24 15:02:05       30 阅读
  3. GNU nano编辑文件,保存文件

    2024-04-24 15:02:05       28 阅读
  4. 【matlab】灰度图压缩

    2024-04-24 15:02:05       29 阅读
  5. ros的master和apollo的cyber的异同

    2024-04-24 15:02:05       29 阅读
  6. windows10 下 wsl + ubuntu + cups 安装使用

    2024-04-24 15:02:05       32 阅读
  7. 从零开始的机器学习之旅:探索Sklearn基础教程

    2024-04-24 15:02:05       36 阅读
  8. PHP中的错误处理机制是怎样的?

    2024-04-24 15:02:05       76 阅读
  9. 如何根据元素的位置关系来调整 CSS 样式

    2024-04-24 15:02:05       31 阅读
  10. PostCSS概述

    2024-04-24 15:02:05       32 阅读