【力扣】101. 对称二叉树

简介: 【力扣】101. 对称二叉树

101. 对称二叉树

题目描述

给你一个二叉树的根节点 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

进阶:你可以运用递归和迭代两种方法解决这个问题吗?

解题方法

  • C 递归
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
bool my_cmp(struct TreeNode* left, struct TreeNode* right) {
    if (NULL == left && NULL == right) {
        return true;
    }
    if (NULL == left || NULL == right) {
        return false;
    }
    if (left->val != right->val) {
        return false;
    }
    return (my_cmp(left->left, right->right) &&
            my_cmp(left->right, right->left));
}

bool isSymmetric(struct TreeNode* root) {
    if (NULL == root) {
        return false;
    }
    return my_cmp(root->left, root->right);
}

复杂度分析

时间复杂度为 O(n),n 为树的节点数。

空间复杂度为 O(n),空间复杂度和递归使用的栈空间有关。


相关文章
|
5月前
|
Java C++ Python
leetcode-101:对称二叉树
leetcode-101:对称二叉树
42 0
|
11月前
Leetcode101.对称二叉树
Leetcode101.对称二叉树
25 0
|
4月前
|
存储 数据采集 算法
力扣题目101:对称二叉树
力扣题目101:对称二叉树
|
5月前
LeetCode——101——对称二叉树
LeetCode——101——对称二叉树
59 12
LeetCode | 101. 对称二叉树
LeetCode | 101. 对称二叉树
|
5月前
力扣101.对称二叉树
力扣101.对称二叉树
41 0
|
5月前
leetcode:对称二叉树
leetcode:对称二叉树
剑指offer 27. 对称的二叉树
剑指offer 27. 对称的二叉树
66 0
|
Java C++ Python
对称的二叉树(剑指offer 28)
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。
对称的二叉树(剑指offer 28)