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

【力扣】重排链表

重排链表

代码

class Solution {
public:void reorderList(ListNode* head) {//当链表只有一个节点或两个节点时直接返回空,不用重排if (head->next == NULL || head->next->next == NULL) return;//1. 进行分割链表ListNode* fast = head, *slow = head;ListNode* end1 = NULL;while (fast && fast->next){fast = fast->next->next;end1 = slow;slow = slow->next;}end1->next = NULL;//链表断开,方便合并链表//2. 反转后半部分链表ListNode* prev = NULL, *cur = slow;while (cur){ListNode* next = cur->next;cur->next = prev;prev = cur;cur = next;}//3. 在原链表上合并两个链表ListNode* cur1 = head->next, *cur2 = prev;ListNode* end = head;//后半部分链表包括了slow指针,后半部分链表节点不会比前半部分链表节点少while (cur2){//先链接后半部分链表,再链接前半部分链表ListNode* next2 = cur2->next;end->next = cur2;end = end->next;cur2 = next2;if (cur1){ListNode* next1 = cur1->next;end->next = cur1;end = end->next;cur1 = next1;}}}
};

http://www.dtcms.com/a/139303.html

相关文章:

  • C++ static的使用方法及不同作用
  • 你知道微生物是如何调控植物功能基因的吗?
  • 供水公司一体化抄表营业收费系统
  • 在 Kali Linux 上安装 Java OpenJDK 8(详细指南)
  • 电商|基于java+vue的农业电商系统(源码+数据库+文档)
  • oracle数据库启动阶段 NoMount / Mount / Open
  • 《Adaptive Layer-skipping in Pre-trained LLMs》- 论文笔记
  • 论文阅读:2022 ACL TruthfulQA: Measuring How Models Mimic Human Falsehoods
  • 数据中台(大数据平台)之数据安全管理
  • 4.1.2 Redis协议与异步方式
  • 智造未来:自动化智能检测系统实现近线检测与智能测量协同
  • 马的移动(BFS)
  • Causal Attention的底层原理
  • JVM详解(曼波脑图版)
  • Qt GUI 库总结
  • webview真正实现通信!!!
  • Vue 3中处理搜索框输入与数据库请求的交互
  • R4打卡——pytorch实现LSTM预测火灾
  • html+js+clickhouse环境搭建
  • [图像掩膜,ROI切割] 图像预处理(OpenCV)-part4
  • Flask(3): 在Linux系统上部署项目
  • 基于flask+vue框架的灯饰安装维修系统u49cf(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • MAMBA start!!!
  • TTY驱动程序框架
  • QML SpinBox:控件的用法与样式外观
  • vue3中defineEmits的使用说明
  • C++中const的不同使用方法和意义
  • 初识Redis · 命令、数据结构补充、协议
  • 订阅应用 TikTok 广告实用指南
  • 电子电器架构 --- 下一代汽车电子/电气(E/E)架构