leetcode 101.对称二叉树

⭐️ 题目描述


🌟 leetcode链接:对称二叉树

思路: 这道题和 leetcode 100.相同的树 类似,是上一道的变形题。✨leetcode 100.相同的树 代码链接:【往期文章】leetcode 100.相同的树。这道题把根的左子树和右子树看作两个不同的树来,需要注意的是,每次往下递归的时候,是当前 root->left root->rightroot->rightroot->left 来判断是否是相同的树(因为是判断是否对称)。

1️⃣ 代码:

c 复制代码
bool isSame (struct TreeNode* tree1 , struct TreeNode* tree2) {
    // 如果两个都为空 说明结构相同
    if (tree1 == NULL && tree2 == NULL) {
        return true;
    }
    // 来到这里有三种情况
    // 1.tree1 == NULL tree2 != NULL
    // 2.tree1 != NULL tree2 == NULL
    // 一个节点为空 一个节点不为空 结构不同返回 false
    if (tree1 == NULL || tree2 == NULL) {
        return false;
    }
    // 3.tree1 != NULL tree2 != NULL
    if (tree1->val != tree2->val) {
        return false;
    }

    return isSame(tree1->left , tree2->right) &&
            isSame(tree1->right , tree2->left);
}

// 把左树和右树当作两个不同的树去比较
bool isSymmetric(struct TreeNode* root){
    if (root == NULL) {
        return true;
    }

    return isSame(root->left , root->right);
}

递归流程图:


相关推荐
babe小鑫5 分钟前
计算机专业学习数据分析的价值
学习·数据挖掘·数据分析
奔跑的Ma~8 分钟前
第三篇:Coze Skill核心模块详解——解锁个性化配置,提升Skill实用性
人工智能·学习·ai编程·skill·扣子
逆境不可逃8 分钟前
黑马 RabbitMq 基础篇 学习记录
学习·rabbitmq·ruby
bnmoel16 分钟前
数据结构深度剖析顺序表:结构、扩容与增删查改全解析
c语言·数据结构·算法·顺序表
Liangwei Lin16 分钟前
LeetCode 45. 跳跃游戏 II
数据结构·算法·leetcode
枕星而眠20 分钟前
一篇吃透 C++ 核心基础:初始化、引用、指针、内联、重载、右值引用
开发语言·数据结构·c++·后端·visual studio
南子北游21 分钟前
计算机视觉学习(三)全连接神经网络
神经网络·学习·计算机视觉
Titan202425 分钟前
C++特殊类设计
c++·学习
再玩一会儿看代码26 分钟前
Token 统计中的“命中缓存”和“未命中缓存”是什么意思?
经验分享·学习·缓存·电脑
守护安静星空32 分钟前
交流桩学习-控制导引
学习