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

【剑斩OFFER】算法的暴力美学——K 个一组翻转链表

一、题目描述

二、算法原理

思路:

1)计算要逆序的链表对

2)创建一个哨兵位,分别把要逆序的结点头插到这个哨兵位上

插入完一对逆序对之后:

再头插到 prev 结点的后面:

3)把除链表逆序对的结点插入到这个哨兵位的最后结点上

三、代码实现

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* reverseKGroup(ListNode* head, int k) { //计算链表的长度 int length = 0; ListNode* node = head; while(node) { length++; node = node->next; } //计算要逆序链表中的对数 int size = length / k; ListNode* head2 = new ListNode(0);//哨兵位 ListNode* prev = head2;//头插的位置 ListNode* cur = head; int num = 0;//记录插入的个数 while(size) { prev->next = cur; ListNode* next_prev = cur;//下一个头插的结点 ListNode* tmp = cur->next; cur->next = nullptr; num++; cur = tmp; while(num != k) { tmp = prev->next; prev->next = cur; num++; ListNode* next_cur = cur->next; cur->next = tmp; cur = next_cur; } prev = next_prev; num = 0; size--;//每逆行一对就减一 } if(cur) prev->next = cur;//连接逆转之后剩余的结点 ListNode* result = head2->next; delete head2; return result; } };
http://www.jsqmd.com/news/189057/

相关文章:

  • 番茄小说下载器:5分钟搞定全网小说下载的终极方案
  • Windows Cleaner:一键解决C盘爆满的智能系统清理工具
  • 高效完成论文:推荐9款Word实用功能与免费编辑助手
  • 计算机深度学习毕设实战-基于人工智能图像分割的疲劳检测方法研究
  • 机器学习中的多重线性回归
  • BooruDatasetTagManager图像标注效率革命:从手工劳动到智能管理的终极指南
  • SketchUp STL插件:从虚拟设计到实体打印的革命性跨越
  • 2026软考高项备考机构选哪家?论文辅导能力与性价比综合测评排行 - 博客万
  • 终极游戏模组管理方案:XXMI启动器完全操作手册
  • 如何彻底解锁艾尔登法环帧率限制:全面优化工具使用指南
  • 何时该使用monorepo
  • Moonlight TV游戏串流完整使用教程
  • Moonlight TV游戏串流终极指南:3步实现大屏游戏畅玩
  • MTKClient终极指南:轻松掌握联发科芯片刷机与数据恢复
  • 【题解】Atcoder Beginner Contest 439(ABC439) A~E
  • GetQzonehistory:QQ空间数据备份技术方案解析
  • 深度学习计算机毕设之机器学习基于图像分割的疲劳检测方法研究人工智能
  • 2026最新橡胶木十大品牌权威榜单发布!国内优质板材源头厂家实力解析 - 全局中转站
  • PotPlayer字幕翻译插件完整使用教程:5步实现实时字幕翻译
  • AssetStudio游戏资源提取完整指南:5步快速上手终极教程
  • ComfyUI离线节点安装完整指南:三步实现本地ZIP包部署
  • OBS多平台直播终极指南:轻松实现全网同步推流
  • GetQzonehistory:轻松备份你的QQ空间记忆宝库
  • OBS多平台直播解决方案:告别观众分散的烦恼
  • 终极指南:如何快速安装DOL中文模组
  • 图像标签管理工具完整指南:从基础操作到批量处理高效工作流
  • yfinance数据修复技术深度解析:构建可靠的金融数据处理管道
  • NCMconverter完整教程:轻松解密网易云音乐格式转换
  • 突破性GitHub网络加速方案:3种高效方法解决开发者访问痛点
  • MAA明日方舟智能辅助工具:新手也能轻松上手的自动化神器