news 2026/6/10 13:21:02

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/6/6 10:32:26

字母文字的焦虑:当汉字成了文明发展的“高效操作系统”

公众号文章写作大纲&#xff1a;字母文字的焦虑&#xff1a;当汉字成了文明发展的“高效操作系统”一、引言&#xff1a;西方学界的热议&#xff0c;抛出文明竞争力的终极追问1.1 西方学界的颠覆性观点在信息爆炸的时代浪潮下&#xff0c;西方学界近期抛出了一个令人瞩目的观点…

作者头像 李华
网站建设 2026/6/10 12:33:05

奉劝所有研究生,选导师一定要慎重

选导师唯 一重要的环节是做好背调&#xff0c;不要管什么话术&#xff0c;把人选对了才厉害。1、能选老导师&#xff0c;不要选年轻导师。 老导师可以有效避免成为开门和独苗&#xff0c;至多让你成为一个闭门大弟子&#xff0c;也没啥不好的。年轻导师本来招生名额就有限&…

作者头像 李华
网站建设 2026/6/10 1:20:28

AI居然能雇佣人类打工!时薪5000刀,RentAHuman.ai在硅谷活了!

2026年的AI&#xff0c;越来越癫 &#xff01; Clawdbot&#xff08;OpenClaw&#xff09;的热度还没退&#xff0c;Moltbook那个全是AI互动的社交网络还在刷屏。 结果昨晚&#xff0c;一个名叫RentAHuman.ai的网站又冒了出来&#xff0c;服务器一度被挤爆。 这网站是干嘛的&…

作者头像 李华
网站建设 2026/6/10 12:22:07

AI 正在“吞噬”软件,数据平台该怎么重写?

近日&#xff0c;国内领先的数据平台公司“云器科技”完成 B 轮融资&#xff0c;其聚焦在亚洲市场&#xff0c;产品战略对标 Databricks。随 AI 持续火热&#xff0c;全球数据基础设施市场也正经历一场范式转移。本文将对比国内外数据领域技术发展&#xff0c;深度拆解 AI 时代…

作者头像 李华
网站建设 2026/6/10 12:34:30

提示工程架构师解读Agentic AI应用场景的实战案例

提示工程架构师视角:Agentic AI应用场景实战案例深度剖析 关键词:提示工程架构师、Agentic AI、应用场景、实战案例、智能决策、自动化流程 摘要:本文以提示工程架构师的独特视角,深入解读Agentic AI在不同领域的应用场景及实战案例。首先阐述Agentic AI的概念及重要性,…

作者头像 李华
网站建设 2026/6/10 14:09:25

提示工程架构师实战:AI提示系统技术架构性能测试与调优全流程

提示工程架构师实战&#xff1a;AI提示系统技术架构性能测试与调优全流程 1. 引入&#xff1a;当AI客服变慢时&#xff0c;你该排查的不是模型&#xff0c;是提示系统 凌晨三点&#xff0c;你被运维告警惊醒&#xff1a;线上AI客服响应时间突破2秒&#xff0c;用户投诉量激增…

作者头像 李华