leetcode 101.对称二叉树

⭐️ 题目描述


🌟 leetcode链接:对称二叉树

思路: 这道题和 leetcode 100.相同的树 类似,是上一道的变形题。✨leetcode 100.相同的树 代码链接:【往期文章】leetcode 100.相同的树。这道题把根的左子树和右子树看作两个不同的树来,需要注意的是,每次往下递归的时候,是当前 root->left 与 root->right 和 root->right 与 root->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);
}

递归流程图:


相关推荐
hackchen6 小时前
LangChain 学习第 2 课 - 提示词模板(Prompt Template)
学习·langchain·prompt
Awh-7 小时前
ARM 裸机开发 DAY10 学习笔记
arm开发·笔记·学习
我命由我123457 小时前
动火作业极简理解
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·学习方法
动词ing7 小时前
[题目练习】三数之和
数据结构
andrsted7 小时前
练题簿助学教学:在线刷题、随堂考试,让一门课拥有自己的题库
学习·微信小程序·小程序·学习方法·刷题
apple_692658858 小时前
GitHub fqapp 番茄开源魔改版:小短剧+漫剧+听书聚合工具 安装指南使用
学习·开源
YSL0701248 小时前
一文通关-----栈和队列
开发语言·数据结构
垆边人似月.8 小时前
找出最小的 K 个数
数据结构·c++·算法
云半S一8 小时前
Agent 学习总结一
经验分享·笔记·学习·agent
chde2Wang9 小时前
Matplotlib数据可视化学习1
学习·matplotlib