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);
}

递归流程图:


相关推荐
weixin_4235339919 分钟前
AFSim学习-自定义Processor开发2-将平台状态存储到csv
学习
bu_shuo20 分钟前
计算机二级学习-查找和排序
学习·算法·排序算法
爱奥尼欧20 分钟前
轻量级可扩展日志框架-异步日志与系统集成
开发语言·数据库·c++·学习
MartinYeung523 分钟前
[论文学习]BackdoorLLM:大语言模型后门攻击与防御的综合性基准——深度解析
人工智能·学习·语言模型
凉、介38 分钟前
KVM + QEMU 虚拟化
笔记·学习·嵌入式·arm·qemu·虚拟化·kvm
承渊政道1 小时前
【MySQL数据库学习】(MySQL访问、连接池原理与简易网站数据流动)
数据库·学习·mysql·mysql访问·连接池原理
剑挑星河月1 小时前
35.搜索插入位置
java·数据结构·算法·leetcode
LiaoWL1231 小时前
【SpringBoot合集-03】Spring Boot 启动过程学习
java·spring boot·学习
闪电悠米1 小时前
力扣hot100-438.找到字符串中所有字母异位词-固定长度滑动窗口详解
linux·服务器·数据结构·算法·leetcode·滑动窗口·力扣hot100
人道领域1 小时前
【LeetCode刷题日记】51.N皇后
数据结构·算法