news 2026/5/4 7:29:27

101. 对称二叉树

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
101. 对称二叉树

101. 对称二叉树

简单

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

📝 核心笔记:对称二叉树 (Symmetric Tree)

1. 核心思想 (一句话总结)

“照镜子:左子树的左手,必须等于右子树的右手;左子树的右手,必须等于右子树的左手。”我们要比较的不是一个节点的左右孩子,而是根节点的左子树根节点的右子树这两棵独立的树。

  • 外侧对比 (Outer):左树的左 (p.left) vs 右树的右 (q.right)。
  • 内侧对比 (Inner):左树的右 (p.right) vs 右树的左 (q.left)。
2. 算法流程 (递归三部曲)

我们将根节点的左右子树拆开,分别称为pq

  1. 终止条件 (Base Case)
    • 都为空p == null && q == null-> 对称 (True)。
    • 一个空一个不空:不对称 (False)。
    • (这部分逻辑在您的p == q中完美涵盖了)
  1. 值比较
    • p.val != q.val-> 不对称 (False)。
  1. 递归 (Cross Check)
    • isMirror(p.left, q.right)isMirror(p.right, q.left)
    • 只有两个方向都对称,整体才对称。
🔍 代码回忆清单
// 题目:LC 101. Symmetric Tree class Solution { public boolean isSymmetric(TreeNode root) { if (root == null) return true; // 从根节点开始,拆分成左右两棵树进行比较 return isMirror(root.left, root.right); } // 这是一个改造版的 "isSameTree" // 实际上它检查的是 p 和 q 是否互为镜像 private boolean isMirror(TreeNode p, TreeNode q) { // 1. 终止条件:处理 null 的情况 if (p == null || q == null) { return p == q; // 只有两个都为 null 才返回 true } // 2. 核心递归: // A. 根节点值必须相同 // B. p 的左边 vs q 的右边 (外侧) // C. p 的右边 vs q 的左边 (内侧) return p.val == q.val && isMirror(p.left, q.right) && isMirror(p.right, q.left); } }
⚡ 快速复习 CheckList (易错点 & 迭代法)
  • [ ]不要比较root.leftroot.right
    • 在递归函数内部,不要写if (p.left.val == p.right.val)
    • 每一层只负责比较传入的pq这两个节点,子节点的比较交给下一层递归。
  • [ ]函数命名小建议
    • 虽然逻辑类似isSameTree,但为了避免歧义,建议 helper 函数命名为checkisMirror。因为SameTree通常暗示leftleft,而这里是leftright
  • [ ]迭代法怎么写?(面试常见追问)
    • 使用队列 (Queue)
    • 每次把u.leftv.right成对放入队列,再把u.rightv.left成对放入。
    • 每次取两个出来比对。如果队列空了都没报错,那就是对称的。
🖼️ 数字演练

树结构:

1 / \ 2 2 / \ / \ 3 4 4 3
  1. Start: CompareL(2)vsR(2).
    • Vals match (2==2).
  1. Recurse Outer: CompareL.left(3)vsR.right(3).
    • Match!
  1. Recurse Inner: CompareL.right(4)vsR.left(4).
    • Match!
  1. Result: True.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 0:11:30

突破云盘限速限制:云盘提速工具的7个实用技巧

突破云盘限速限制&#xff1a;云盘提速工具的7个实用技巧 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改&#xff08;改自6.1.4版本&#xff09; &#xff0c;自用&#xff0c;去推广&#xff0c;无…

作者头像 李华
网站建设 2026/5/3 11:57:25

软件工程毕设题目推荐:基于效率提升的选题策略与技术实现指南

软件工程毕设题目推荐&#xff1a;基于效率提升的选题策略与技术实现指南 “选题一时爽&#xff0c;交付火葬场”——这是每年 3 月实验室里出现频率最高的吐槽。需求拍脑袋、技术栈拍大腿、进度拍胸口&#xff0c;最后把 GitHub 仓库改成 private 就算“顺利毕业”。痛定思痛…

作者头像 李华
网站建设 2026/4/18 5:16:02

HEIC预览终极解决方案:告别Windows缩略图无法显示的烦恼

HEIC预览终极解决方案&#xff1a;告别Windows缩略图无法显示的烦恼 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 如何解决Windows系…

作者头像 李华
网站建设 2026/5/1 0:49:37

生成式AI持续学习实战:从LLMs到MLLMs的高效演进策略

背景&#xff1a;为什么“学完就忘”成了生成式AI的阿克琉斯之踵&#xff1f; 过去一年&#xff0c;我们把 7B 参数的 LLM 从“能写周报”训到“能写专利”&#xff0c;却在追加多模态图文对齐数据后&#xff0c;发现模型把“写周报”的能力直接“格式化”——这就是灾难性遗忘…

作者头像 李华