news 2026/6/10 22:02:42

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【剑斩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; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:18:54

PotPlayer字幕翻译插件完整使用教程:5步实现实时字幕翻译

还在为外语视频的字幕而苦恼吗?PotPlayer字幕翻译插件能够实时将外文字幕转换为中文,让你轻松理解全球影视内容。这款基于百度翻译API的插件设置简单,效果出色,是外语学习者和影视爱好者的必备工具。 【免费下载链接】PotPlayer_S…

作者头像 李华
网站建设 2026/6/10 15:06:07

BooruDatasetTagManager图像标注效率革命:从手工劳动到智能管理的终极指南

还在为海量图像标注工作发愁吗?传统手工标注不仅耗时耗力,还容易出错。BooruDatasetTagManager正是为解决这一痛点而生,它让图像标注效率实现质的飞跃,帮助创作者、数据标注员和AI研究者从繁琐劳动中解放出来。无论你是零基础新手…

作者头像 李华
网站建设 2026/6/9 22:20:18

Moonlight TV游戏串流完整使用教程

Moonlight TV是一款专为大屏设备优化的轻量级游戏串流客户端,让你能够在智能电视和树莓派上享受PC游戏的震撼体验。本教程将带你从零开始掌握这款强大的开源工具。 【免费下载链接】moonlight-tv Lightweight NVIDIA GameStream Client, for LG webOS for Raspberry…

作者头像 李华
网站建设 2026/6/10 13:29:11

Degrees of Lewdity中文版终极安装指南:零基础快速上手

Degrees of Lewdity中文版终极安装指南:零基础快速上手 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Localization …

作者头像 李华
网站建设 2026/6/10 13:24:04

图像标签管理工具完整指南:从基础操作到批量处理高效工作流

图像标签管理工具完整指南:从基础操作到批量处理高效工作流 【免费下载链接】BooruDatasetTagManager 项目地址: https://gitcode.com/gh_mirrors/bo/BooruDatasetTagManager 图像标签管理工具是提升图像标注效率的关键利器,通过智能化的批量处理…

作者头像 李华
网站建设 2026/6/10 15:38:22

电话号码定位技术:3分钟掌握精准位置查询的完整指南

电话号码定位技术:3分钟掌握精准位置查询的完整指南 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/gh_mirror…

作者头像 李华