news 2026/4/18 5:43:43

226. 翻转二叉树

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
226. 翻转二叉树

226. 翻转二叉树

简单

给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。

示例 1:

输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]

示例 2:

输入:root = [2,1,3] 输出:[2,3,1]

示例 3:

输入:root = [] 输出:[]

提示:

  • 树中节点数目范围在[0, 100]
  • -100 <= Node.val <= 100

📝 核心笔记:翻转二叉树 (Invert Binary Tree)

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

“照镜子:对于树中的每一个节点,都要交换它的左胳膊和右胳膊。”

  • 翻转二叉树并不是只翻转根节点的左右,而是要递归地深入到每一个子节点,把它们的左右孩子也都交换了。
  • 最终效果是整个树变成了镜像。
2. 算法流程 (递归三步曲)
  1. 终止条件 (Base Case)
    • root == null,空节点没法翻转,直接返回null
  1. 递归 (Recurse)
    • left = invertTree(root.left):先把左子树内部翻转好,并拿回来。
    • right = invertTree(root.right):先把右子树内部翻转好,并拿回来。
  1. 操作 (Swap)
    • 关键动作root.left = right,root.right = left
    • 将“处理好的右子树”挂到左边,将“处理好的左子树”挂到右边。
🔍 代码回忆清单
// 题目:LC 226. Invert Binary Tree class Solution { public TreeNode invertTree(TreeNode root) { // 1. 终止条件 if (root == null) { return null; } // 2. 递归处理子节点 (后序遍历视角) // 就像外包一样,先让手下把左右两边的家务事处理好 TreeNode left = invertTree(root.left); TreeNode right = invertTree(root.right); // 3. 交换当前节点的左右指针 // 手下处理完了,老板把自己左右手交换一下 root.left = right; root.right = left; return root; } }
⚡ 快速复习 CheckList (易错点 & 扩展)
  • [ ]先交换还是先递归?
    • 都可以!
    • 后序 (您的写法):先递归到底,由下往上交换。
    • 前序:先交换root.leftroot.right,然后再递归invertTree(root.left)root.right
    • 中序:比较麻烦,因为交换完左边后,原来的右边变成了左边,如果再递归右边,其实是在递归“原来的左边”。需要小心处理。建议面试只写前序或后序
  • [ ]能不能用 BFS (层序遍历)?
    • 面试加分项。可以!
    • 把节点放入队列。每次取出一个节点,交换它的左右孩子,然后把左右孩子扔进队列。这样也能一层层完成翻转。
  • [ ]必须返回值吗?
    • 题目要求返回TreeNode,所以递归函数最后要return root
🖼️ 数字演练

树结构:

4 / \ 2 7 / \ / \ 1 3 6 9
  1. 递归到底: 此时root是 2。
    • invert(1)-> 返回 1。
    • invert(3)-> 返回 3。
    • Swap: 2 的左变 3,右变 1。返回(3-2-1)
  1. 递归到底: 此时root是 7。
    • invert(6)-> 返回 6。
    • invert(9)-> 返回 9。
    • Swap: 7 的左变 9,右变 6。返回(9-7-6)
  1. 回到根节点: 此时root是 4。
    • left拿到了 (3-2-1)。
    • right拿到了 (9-7-6)。
    • Swap: 4 的左接 (9-7-6),右接 (3-2-1)。

Result:

4 / \ 7 2 / \ / \ 9 6 3 1

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

量子态育儿:单亲测试妈妈的脑机平衡2026

当脑机接口遇见育儿闹钟——我的双重战场 作为软件测试工程师和单亲妈妈&#xff0c;2026年的每一天都像一场精密测试&#xff1a;脑机开发项目的代码调试与孩子的家长会&#xff0c;在量子叠加态中碰撞。这种“平衡”并非时间分割&#xff0c;而是像测试用例设计一样&#xf…

作者头像 李华
网站建设 2026/4/18 7:57:23

java+vue+springboot开题报告 军事训练登统计分析系统

目录系统背景与意义技术栈选择核心功能模块系统创新点技术难点与解决方案预期成果项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作系统背景与意义 军事训练登记统计分析系统旨在解决传统军事训练管理中数据…

作者头像 李华
网站建设 2026/4/18 8:44:08

45365

84563

作者头像 李华
网站建设 2026/4/18 10:51:26

468538

463555

作者头像 李华
网站建设 2026/4/17 19:23:30

全球药品追溯码扫码一体机市场报告2026-2032

药品追溯码扫码一体机是一种专为药品全生命周期追溯管理设计的集成化智能终端设备&#xff0c;它整合了高精度条码 / 二维码扫描模块、嵌入式数据处理单元、人机交互显示界面及无线 / 有线通信模块&#xff0c;主要应用于药店、医院药房、药品仓储物流节点及零售终端等场景。该…

作者头像 李华