【Leetcode】101.对称二叉树

文章目录

一. 题目信息

1. 描述

给定一个二叉树,检查它是否是镜像对称的。
题目链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/

二. 解法

1. 递归

①. 复杂度分析

  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

②. c++解法

/**
 * 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) {
        return check(root->left, root->right);
    }
    bool check(TreeNode* left, TreeNode* right) {
        if (!left && !right) {
            return true;
        } else if (!left || !right) {
            return false;
        } else if (left->val != right->val) {
            return false;
        } else {
            return check(left->left, right->right) && check(left->right, right->left);
        }
    }
};
上一篇:C++语言导学 第一章 基础知识 - 1.7 指针、数组和引用


下一篇:Codeforces Round #727 (Div. 2)部分题解(A-D)