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

递归流程图:


相关推荐
起个数先12 分钟前
快速排序算法(Java)
数据结构·排序算法
飞升不如收破烂~14 分钟前
英语学习笔记2.0
笔记·学习
声网23 分钟前
从语音识别到智能助手:Voice Agent 的技术进化与交互变革丨Voice Agent 学习笔记
学习·交互·语音识别
小咪一会43 分钟前
速学 RocketMQ
学习·rocketmq·java-rocketmq
future14121 小时前
项目开发日记
前端·学习·c#·游戏开发
每次的天空2 小时前
Android-重学kotlin(协程源码第一阶段)新学习总结
开发语言·学习·kotlin
Brookty2 小时前
【操作系统】线程
java·linux·服务器·后端·学习·java-ee·操作系统
chao_7898 小时前
二分查找篇——搜索旋转排序数组【LeetCode】两次二分查找
开发语言·数据结构·python·算法·leetcode
数字芯片实验室8 小时前
分享一个可以学习正则表达式的网址:Pythex.org
学习·正则表达式
陈洪奇9 小时前
注册中心学习笔记整理
笔记·学习