新闻详情

新闻详情

首页 / 资讯中心 / 详情

LeetCode:题目解答复盘(5)

发布时间:2026/10/2 12:56:06来源:尧图网络
LeetCode:题目解答复盘(5)
LeetCode 226. 翻转二叉树 (Invert Binary Tree)解题思路这道题的核心在于递归Divide and Conquer。翻转整棵树本质上就是将树中每一个节点的左右子树进行交换。我们可以采用后序遍历的思想自底向上来解决确定终止条件如果当前节点为空root nullptr说明已经到达叶子节点的下方直接返回 nullptr。递归翻转左子树调用 invertTree(root-left)得到翻转后的左子树用临时变量 left 接收。递归翻转右子树调用 invertTree(root-right)得到翻转后的右子树用临时变量 right 接收。交换左右子树将当前节点的 left 指针指向翻转后的 rightright 指针指向翻转后的 left。返回当前节点将处理完毕的当前节点返回给上一层。复杂度分析时间复杂度O(N)。其中 N 为二叉树的节点数。我们会遍历二叉树中的每一个节点对每个节点而言交换其左右子树的时间复杂度为 O(1)因此总时间复杂度为 O(N)。空间复杂度O(H)。其中 H 为二叉树的高度。空间复杂度取决于递归调用栈的深度。在最坏情况下树退化为链表空间复杂度为 O(N)在最好情况下树完全平衡空间复杂度为 O(log N)。知识点说明通过这道题我们可以巩固以下几个核心知识点二叉树的结构与指针操作在 C 中二叉树通常由结构体/类构成包含数据域val和指针域left, right。易错点在交换节点时不能直接写 root-left root-right; root-right root-left;。因为第一行赋值后原本的 root-left 就被覆盖丢失了。必须像图中代码一样使用临时变量 left 和 right 提前保存递归结果。递归的三大要素这道题是理解递归的绝佳案例明确函数的作用invertTree(root) 的作用是翻转以 root 为根的树并返回新的根节点。寻找终止条件 root nullptr。推导递推公式 当前节点的左子树 翻转后的右子树当前节点的右子树 翻转后的左子树。后序遍历后序遍历的顺序是左 - 右 - 根。在代码中表现为先递归处理 root-left 和 root-right最后再处理当前 root 的交换逻辑。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

你的回测年化300%,实盘亏了80%——量化交易最大的谎言,叫“回测“ 2026/10/2 13:49:13

你的回测年化300%,实盘亏了80%——量化交易最大的谎言,叫“回测“

一、回测,是量化交易最诱人、也最危险的环节 每一个刚接触量化交易的人,都经历过这样的时刻: 你花了一个星期写出了一个策略。你跑了一下历史回测。屏幕上的资金曲线一路向上,年化收益率300%,最大回撤不到5%&#xff0…

阅读更多 →
成都量化交流会:同一个策略,人工执行vs机器执行,结果天壤之别——我们用数据做了个实验 2026/10/2 13:49:13

成都量化交流会:同一个策略,人工执行vs机器执行,结果天壤之别——我们用数据做了个实验

一、如果把你的交易方法交给机器,结果会怎样? 这是一个所有手工交易者都应该问自己的问题。 你有一个交易方法。你觉得它不错。你在实盘中用它赚过钱,也亏过钱。但你从来没有认真想过一个问题: 你的盈亏,到底是因为策略…

阅读更多 →
Go es 数据库 Elasticsearch 实战:go-elasticsearch 高级查询 2026/10/2 13:49:13

Go es 数据库 Elasticsearch 实战:go-elasticsearch 高级查询

Go es 数据库 Elasticsearch 实战:go-elasticsearch 高级查询ES 是 Go 后端最常见的搜索引擎。本文从连接、查询、聚合到 Bulk 全流程实战。一、依赖安装 import ("github.com/elastic/go-elasticsearch/v8""github.com/elastic/go-elasticsearch/v8…

阅读更多 →
Css中cursor:pointer的作用(鼠标指针变小手):从默认箭头到点击手型的完整配置与验证 2026/10/2 13:49:07

Css中cursor:pointer的作用(鼠标指针变小手):从默认箭头到点击手型的完整配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Snipe-IT 控制器层架构规范解析:无 DTO/Repository 的内联 Eloquent 与 Action 拆分实践 2026/10/2 13:49:00

Snipe-IT 控制器层架构规范解析:无 DTO/Repository 的内联 Eloquent 与 Action 拆分实践

后端企业应用 【免费下载链接】snipe-it A free open source IT asset/license management system 项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it 点击查看 免费下载 导读 本文聚焦开源 IT 资产/许可证管理系统 Snipe-IT 的控制器层(app…

阅读更多 →
Warp 完成通知中的 Artifact 行:从事件溯源到交互式 Chip 的完整设计与实现 2026/10/2 13:49:00

Warp 完成通知中的 Artifact 行:从事件溯源到交互式 Chip 的完整设计与实现

桌面应用开发者工具人工智能AI 应用AI Agent代码智能体 【免费下载链接】warp Warp is an agentic development environment, born out of the terminal. 项目地址: https://gitcode.com/GitHub_Trending/wa/warp 点击查看 免费下载 导读 本指南以 Warp 开源仓库中…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉