当前位置: 首页 > news >正文

链表算法综合——重排链表

此题意就是先把链表一分为二,然后把后半链表逆序并交替插入前半链表中

涉及到双指针找链表中点,头插法逆转链表的基本链表操作,具体将在代码中演示,这里我们选择不把slow指针分割成后半进行逆序而是放在前半,因为最终结果slow和前一个的位置一直不变(如果放在后也可以)

void reorderList(ListNode* head) {//以下情况不需要改变原链表if(head==nullptr||head->next==nullptr||head->next->next==nullptr) return;//找到中间节点ListNode*slow=head,*fast=head;while(fast&&fast->next){slow=slow->next;fast=fast->next->next;}//分割链表ListNode*head2=new Listnode(0);ListNode*cur=slow->next;slow->next==nullptr;//逆序后链表while(cur){ListNode*next=cur->next;cur->next=head2->next;head2->next=cur;cur=next;}//插入ListNode*ret=new ListNode(0);ListNode*prev=ret;ListNode*cur1=head,*cur2=head2->next;while(cur1){prev->next=cur1;cur1=cur1->next;prev=prev->next;if(cur2){prev->next=cur2;cur2=cur2->next;prev=prev->next;}}delete head2;delete ret;}

 

http://www.lryc.cn/news/601795.html

相关文章:

  • Webpack 和 Vite 的关键区别
  • 01人工智能中优雅草商业实战项目视频字幕翻译以及声音转译之底层处理逻辑阐述-卓伊凡|莉莉
  • J2EE模式---服务层模式
  • WAIC 2025 热点解读:如何构建 AI 时代的“视频神经中枢”?
  • Java面试题及详细答案120道之(081-100)
  • 零基础学习性能测试第五章:JVM性能分析与调优-多线程机制与运行原理
  • 【RAG技术权威指南】从原理到企业级应用实践
  • 蓝奏云网盘API 2.0
  • HCIE学习之路:路由引入
  • 比特币运行机制全解析:区块链、共识算法与数字黄金的未来挑战
  • 【代码问题】【包安装】MMCV
  • Item15:在资源管理类中提供对原始资源的访问
  • C语言(长期更新)第6讲:函数
  • 20250727-1-Kubernetes 网络-Ingress介绍,部署Ingres_笔记
  • rename系统调用及示例
  • 虚拟机ubuntu20.04共享安装文件夹
  • 【笔记】系统
  • ADB Shell 命令
  • 安装redis
  • 2025.7.22总结-幸福的力量
  • 《汇编语言:基于X86处理器》第10章 结构和宏(1)
  • 数据库连接操作详解:左连接、右连接、全连接与内连接
  • LeetCode 239:滑动窗口最大值
  • LeetCode第350题_两个数组的交集II
  • NVMe高速传输之摆脱XDMA设计17:队列管理控制设计(下)
  • 金字塔降低采样
  • 企业IT管理——突发病毒事件应急处理预案模板
  • 【Python系列】使用 memory_profiler 诊断 Flask 应用内存问题
  • 【NLP实践】三、LLM搭建中文知识库:提供RestfulAPI服务
  • 《计算机组成原理与汇编语言程序设计》实验报告四 Debug及指令测试