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

LeetCode25_K个一组翻转链表

. - 力扣(LeetCode)

一、题目描述

二、过程模拟

1. 第一步

2. 第二步:子链表分组

3. 第三步:断开前后两组

4. 第四步:翻转start到end的部分

5. 第五步:连接翻转好的前半部分和未翻转的后半部分,并重置pre和end

三、完整代码

public ListNode reverseKGroup(ListNode head, int k) {if(head == null || head.next == null) return head;ListNode dummy = new ListNode(-1);dummy.next = head;ListNode pre = dummy;ListNode end = dummy;while(end  != null){for(int i=0; i<k && end != null; ++i){end = end.next;}if(end == null){break;}ListNode start = pre.next;ListNode next = end.next;end.next = null;pre.next = reverse(start);start.next = next;pre = start;end = start;}return dummy.next;}public ListNode reverse(ListNode head){ListNode pre = null;ListNode cur = head;while(cur != null ){ListNode next = cur.next;cur.next = pre;pre = cur;cur = next;}return pre;}

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

相关文章:

  • 电脑突然提示:“failed to load steamui.dll”是什么情况?分享几种解决steamui.dll丢失的方法
  • 【vue实战项目】通用管理系统:作业列表
  • Scikit-Learn随机森林回归
  • Vue Router 教程
  • 【数据库】SQL--DQL(初阶)
  • 【docker】docker的安装
  • OC IOS 文件解压缩预览
  • python-web应用程序-Django-From组件
  • K8s(Kubernetes)常用命令
  • C#-for循环语句
  • css动画案例练习之会展开的魔方和交错的小块
  • 前端逆向之下载canvas引用的图片
  • 深度学习手撕代码题
  • vue3 + ts 动态添加路由,刷新页面白屏问题解决方案
  • 【Kubernetes】k8s的调度约束(亲和与反亲和)
  • Java数据结构- Map和Set
  • JVM参数配置
  • Vue 实现的精彩动画效果
  • JVM类加载机制详解(JDK源码级别)
  • 美国年轻人热衷床上“摆烂”,沃尔玛发掘床上用品新商机!
  • 3168. 候诊室中的最少椅子数
  • C# PaddleOCR 单字识别效果
  • pyopengl 立方体 正投影,透视投影
  • 人工智能任务5-高级算法工程师需要学习哪些课程与掌握哪些能力
  • 服务器上创建搭建gitlab
  • LangChain学习之prompt格式化与解析器使用
  • 基于EasyX的贪吃蛇小游戏 - C语言
  • 使用Docker辅助图像识别程序开发:在Docker中显示GUI、访问GPU、USB相机以及网络
  • Java中常见错误-泛型擦除及桥接方法问题及解决方案
  • Linux 程序守护脚本