当前位置: 首页 > news >正文

LeetCode 热题 100 101. 对称二叉树

LeetCode 热题 100 | 101. 对称二叉树

大家好,今天我们来解决一道经典的二叉树问题——对称二叉树。这道题在 LeetCode 上被标记为简单难度,要求检查给定的二叉树是否轴对称。


问题描述

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

解题思路

核心思想
  1. 递归法

    • 使用递归法检查二叉树是否对称。
    • 对于两个子树,如果它们的根节点值相等,并且左子树的左子树与右子树的右子树对称,左子树的右子树与右子树的左子树对称,则这两个子树对称。
  2. 递归函数

    • 定义一个辅助函数 isSymmetric,用于检查两个子树是否对称。

Python代码实现

class Solution:def isSymmetric(self, root: TreeNode) -> bool:if not root:return Truedef isMirror(left: TreeNode, right: TreeNode) -> bool:if not left and not right:return Trueif not left or not right:return Falsereturn (left.val == right.val) and isMirror(left.left, right.right) and isMirror(left.right, right.left)return isMirror(root.left, root.right)

代码解析

  1. 基本情况

    • 如果根节点为空,直接返回 True,因为空树是对称的。
  2. 递归函数

    • 定义一个辅助函数 isMirror,用于检查两个子树是否对称。
    • 如果两个子树都为空,返回 True
    • 如果一个子树为空,另一个不为空,返回 False
    • 如果两个子树的根节点值相等,并且左子树的左子树与右子树的右子树对称,左子树的右子树与右子树的左子树对称,则返回 True
  3. 递归调用

    • 调用 isMirror 函数,检查根节点的左子树和右子树是否对称。

复杂度分析

  • 时间复杂度:O(n),其中 n 是树中节点的数量。每个节点被访问一次。
  • 空间复杂度:O(h),其中 h 是树的高度。递归调用栈的深度最多为树的高度。

示例运行

示例 1
输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2
输入:root = [1,2,2,null,3,null,3]
输出:false

总结

通过递归法,我们可以高效地检查二叉树是否对称。递归函数 isMirror 用于比较两个子树是否对称,确保每个节点的值和结构都符合对称条件。希望这篇题解对大家有所帮助,如果有任何问题,欢迎在评论区留言讨论!

关注我,获取更多算法题解和编程技巧!

相关文章:

  • 79.评论日记
  • UOJ 164【清华集训2015】V Solution
  • 元数据分类
  • 并发笔记-给数据上锁(二)
  • 怎样选择成长股 读书笔记(一)
  • Linux epoll 详解:概念、使用、数据结构、流程及应用
  • 力扣-二叉树-101 对称二叉树
  • 常见的 DCGM 设备级别指标及其含义
  • 一个网球新手的学习心得
  • 【C语言文件操作详解】fopen 函数全解析 —— 模式参数、使用技巧与重定向的区别
  • 运动员技术等级分为国际级运动健将
  • C——猜数字游戏
  • RuoYi-v4.7.8 jar/war部署
  • n8n中订阅MQTT数据
  • 什么是硬件中断请求号?什么是中断向量号?
  • C++语法基础(上)
  • 基于单片机的电子法频率计
  • .Net HttpClient 处理响应数据
  • BGP实验练习1
  • 基于Docker的Bitwarden的私有本地部署
  • 中美发布日内瓦经贸会谈联合声明达成关税共识,外交部回应
  • 梅花奖在上海|“我的乱弹我的团”,民营院团首次入围终评
  • 韩国执政党总统候选人更换方案被否决,金文洙候选人资格即刻恢复
  • 巴基斯坦全面恢复领空开放
  • 乌外长:乌方准备无条件停火至少30天
  • 巴军事行动致印度70%电网瘫痪