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

Leecode刷题之路第25天之K个一组翻转链表

题目出处

25-K个一组翻转链表-题目出处

题目描述

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。

在这里插入图片描述

提示:链表中的节点数目为 n1 <= k <= n <= 50000 <= Node.val <= 1000进阶:你可以设计一个只用 O(1) 额外内存空间的算法解决此问题吗?

个人解法

思路:

todo

代码示例:(Java)

todo

复杂度分析

todo

官方解法

25-K个一组翻转链表-官方解法

方法1:模拟

思路:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码示例:(Java)

public class Solution1 {@Datapublic static class ListNode {int val;ListNode next;ListNode() {}ListNode(int val) {this.val = val;}ListNode(int val, ListNode next) {this.val = val;this.next = next;}}public ListNode reverseKGroup(ListNode head, int k) {ListNode hair = new ListNode(0);hair.next = head;ListNode pre = hair;while (head != null) {ListNode tail = pre;// 查看剩余部分长度是否大于等于 kfor (int i = 0; i < k; ++i) {tail = tail.next;if (tail == null) {return hair.next;}}ListNode nex = tail.next;ListNode[] reverse = myReverse(head, tail);head = reverse[0];tail = reverse[1];// 把子链表重新接回原链表pre.next = head;tail.next = nex;pre = tail;head = tail.next;}return hair.next;}public ListNode[] myReverse(ListNode head, ListNode tail) {ListNode prev = tail.next;ListNode p = head;while (prev != tail) {ListNode nex = p.next;p.next = prev;prev = p;p = nex;}return new ListNode[]{tail, head};}}

复杂度分析

在这里插入图片描述

考察知识点

收获

Gitee源码位置

25-K个一组翻转链表-源码

同名文章,已同步发表于CSDN,个人网站,公众号

  • CSDN

    工一木子
  • 个人网站

    工藤新一
  • 公众号

    在这里插入图片描述
http://www.lryc.cn/news/463887.html

相关文章:

  • nuxtjs3 使用tailwindcss做自适应
  • 数据资产目录构建方法与应用
  • 【Python爬虫实战】从文件到数据库:全面掌握Python爬虫数据存储技巧
  • 断其一指,无惧!ProFusion3D: 相机或者激光失效仍高效的多传感器融合3D目标检测算法
  • CCS字体、字号更改+CCS下载官方链接
  • YOLO11改进|注意力机制篇|引入SEAM注意力机制
  • 简历修订与求职经历 - Chap04
  • 鸿蒙开发案例:推箱子
  • mysql--表的约束
  • Ubuntu 上安装 docker 并配置 Docker Compose 详细步骤
  • MySQL去除空白字符(如非标准空格、制表符等)
  • 2063:【例1.4】牛吃牧草
  • QT开发:深入掌握 QtGui 和 QtWidgets 布局管理:QVBoxLayout、QHBoxLayout 和 QGridLayout 的高级应用
  • Bootstrapping、Bagging 和 Boosting
  • 板块龙头公司
  • Java项目-基于Springboot的招生管理系统项目(源码+说明).zip
  • 使用 MongoDB 构建 AI:利用实时客户数据优化产品生命周期
  • 【React】React18核心源码解读
  • 部署私有仓库以及docker web ui应用
  • DAY57WEB 攻防-SSRF 服务端请求Gopher 伪协议无回显利用黑白盒挖掘业务功能点
  • 光盘刻录大文件时分卷操作
  • Kafka系列之:生产者性能调优
  • 【linux】进程创建与进程终止
  • QT的文件操作类 QFile
  • java项目篇-用户脱敏展示
  • 《C++计算引擎:驱动高效计算的强大动力》
  • Linux的hadoop集群部署
  • 请问:ESModule 与 CommonJS 的异同点是什么?
  • 【数据结构与算法】力扣 59. 螺旋矩阵 II
  • HarmonyOS Next模拟器异常问题及解决方法