新闻详情

新闻详情

首页 / 资讯中心 / 详情

链表与递归实战:反转链表与两两交换节点(LeetCode 206 24)

发布时间:2026/9/5 7:10:04来源:尧图网络
链表与递归实战:反转链表与两两交换节点(LeetCode 206  24)
一、递归基础递归就是函数调用自身。如果一个递归调用是最后一条执行语句称为尾递归。递归模型由两部分组成递归出口结束条件和递归体递推关系。比如求 n!递归出口fun(1) 1递归体fun(n) n * fun(n-1)斐波那契数列也是递归的经典例子F(0)0, F(1)1, F(n)F(n-1)F(n-2) (n2)。在链表问题中递归常常能写出非常简洁的代码但也要注意理清调用过程。二、反转链表LeetCode 206题目给你单链表的头节点 head请你反转链表并返回反转后的链表。方法一迭代法双指针思路定义两个指针cur 指向当前节点pre 指向前一个节点初始为 null。遍历链表每次把 cur.next 指向 pre然后 pre 和 cur 同时后移。循环结束返回 pre 即可。代码class Solution:def reverseList(self, head: ListNode) - ListNode:cur headpre Nonewhile cur:temp cur.next # 保存下一个节点cur.next pre # 反转pre cur # pre 后移cur temp # cur 后移return pre方法二递归法思路假设从节点 head.next 开始后面的链表已经反转完成那么只需要把 head.next 的 next 指向 headhead.next 设为 null 即可。代码class Solution:def reverseList(self, head: ListNode) - ListNode:if not head or not head.next:return headnew_head self.reverseList(head.next)head.next.next headhead.next Nonereturn new_head三、两两交换链表中的节点LeetCode 24题目给你一个链表两两交换其中相邻的节点并返回交换后链表的头节点。不能修改节点内部的值只能进行节点交换。示例输入 [1,2,3,4]输出 [2,1,4,3]。思路使用虚拟头节点 dummy_head然后用指针 current 遍历。每次需要检查 current.next 和 current.next.next 是否存在。交换时需要三个临时指针temp 保存第一个节点temp1 保存第二个节点的下一个节点。然后调整指针current.next 指向第二个节点第二个节点指向第一个节点第一个节点指向 temp1。最后 current 移动到第一个节点即交换后的第二个节点继续循环。代码class Solution:def swapPairs(self, head: ListNode) - ListNode:dummy_head ListNode(nexthead)current dummy_headwhile current.next and current.next.next:temp current.nexttemp1 current.next.next.nextcurrent.next current.next.nextcurrent.next.next temptemp.next temp1current current.next.nextreturn dummy_head.next
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

2026年7月CISP考试成绩出了~(通过人数:1946人) 2026/9/5 7:43:09

2026年7月CISP考试成绩出了~(通过人数:1946人)

【资料领取】赠送 CISP 电子书 2026 | CISP及CISP-PTE 证书到期维持方法 👇【全国7-12月CISP考试计划表】👇 面授班 、全国直播班 同步 通过 2026年7月CISP考试成绩 成都 考试时间:2026年07月17日 通过人数:71 杜沁芸 吴卿 杨…

阅读更多 →
浏览器内核为何需要千万行代码?从渲染引擎到安全边界深度拆解 2026/9/5 7:43:09

浏览器内核为何需要千万行代码?从渲染引擎到安全边界深度拆解

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

阅读更多 →
制度供给不足下美国网络诈骗受害者救济困境及域外比较研究 2026/9/5 7:43:09

制度供给不足下美国网络诈骗受害者救济困境及域外比较研究

摘要依托美联社与 FRONTLINE 联合开展的 58 名诈骗受害者深度访谈调查材料,本文聚焦美国网络诈骗犯罪高发背景下受害者权利救济失灵问题。研究发现,美国网络诈骗实际经济损失规模远高于官方统计数据,诈骗侵害覆盖全年龄、全知识背景人群&…

阅读更多 →
Excel/WPS通用技巧:用基础函数一键生成批量连续编号 2026/9/5 7:43:09

Excel/WPS通用技巧:用基础函数一键生成批量连续编号

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

阅读更多 →
分布式系统事件乱序处理:从Watermark原理到Flink工程实践 2026/9/5 7:43:09

分布式系统事件乱序处理:从Watermark原理到Flink工程实践

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

阅读更多 →
2026拉萨SEO/GEO优化公司哪家效果好|关键词置顶+有效线索转化 2026/9/5 7:40:09

2026拉萨SEO/GEO优化公司哪家效果好|关键词置顶+有效线索转化

2026拉萨SEO/GEO优化公司哪家效果好|关键词置顶有效线索转化拉萨本地企业在筛选2026拉萨SEO/GEO优化公司时,核心诉求是找到能够实现关键词稳定置顶、输出真实有效线索的服务商,规避虚假承诺、违规刷排名、无效垃圾线索、异地服务商不懂本地流…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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