news 2026/7/15 4:33:23

单链表的应用-反转链表and删除链表中间结点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
单链表的应用-反转链表and删除链表中间结点

反转链表

解法:多指针

1.创建三个指针

  • first:记录当前节点的 “前一个节点”(反转后,当前节点要指向它);
  • second:指向当前正在处理的节点(每轮循环要反转它的next指针);
  • third:暂存second下一个节点(避免反转second的指针后,丢失后续链表)。

2.让third通过箭头移动,而first和second通过赋值移动,first、second、third指针通过循环依次向后挪位置,直至second=NULL

3.当循环结束时,所有的元素都被处理完毕,此时的指向是这样

需要为逆置后的新链表添加一个新的头结点,然后让新头结点的next指向“反转后的首元结点”(即原链表的尾结点first)

整体代码:

删除链表中间结点:快慢指针(fast/slow)

情况1:链表有奇数个结点(中间结点即为(n+1)/2)

情况2:链表有偶数个结点(中间结点为n/2+1)

大致做法:1.创建fast、slow两个指针,让slow指向链表的头结点,让fast指向链表的首元结点

2.fast和slow指针同时移动,fast每次移动两步,slow每次移动一步(fast移动的步长刚好为slow的两倍)

3.当fast=NULL(链表有偶数个结点)或者fast->next=NULL(链表有奇数个结点)时,表明fast已经遍历完整个链表,此时的slow恰好指向中间结点的前一个结点

与题目相关的截图来源于b站逊哥

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

SMUDebugTool深度探索:解锁AMD Ryzen系统的隐藏性能

为什么我的Ryzen系统总是无法达到理想的性能表现?为什么游戏帧率波动如此剧烈?这些问题困扰着许多AMD Ryzen用户。今天,让我们一起踏上SMUDebugTool的探索之旅,揭开这款专业调试工具的神秘面纱,帮助您真正掌握Ryzen系统…

作者头像 李华
网站建设 2026/7/14 22:35:24

Google Drive文件下载终极指南:简单快速解决下载难题

Google Drive文件下载终极指南:简单快速解决下载难题 【免费下载链接】gdrivedl Google Drive Download Python Script 项目地址: https://gitcode.com/gh_mirrors/gd/gdrivedl 还在为Google Drive文件下载困扰吗?面对大文件下载缓慢、共享链接复…

作者头像 李华
网站建设 2026/7/14 1:32:16

面对一个新领域,如何快速摸清门道?试试“一键生成”研究地图

当研究者初次踏入一个陌生领域时,常面临以下核心痛点:1. 信息分散且整合困难:学术文献、行业报告、技术动态散落在海量数据库中,难以快速提炼关键线索;2. 逻辑框架模糊:研究方向不明确,研究方法…

作者头像 李华