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

25. K 个一组翻转链表

题解参考:https://leetcode.cn/problems/reverse-nodes-in-k-group/solutions/10416/tu-jie-kge-yi-zu-fan-zhuan-lian-biao-by-user7208t/

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

设置dummy虚拟头节点,pre为待翻转部分的前驱(用于连接),end为待翻转部分中的结尾节点(用k定),next为待翻转部分的后续节点(用于连接),bg为翻转前的翻转部分的开始节点,进入reverse后,会有cur节点作为副本,因此bg的位置不会变,翻转后,bg所在节点变成了结尾,将其和next相连,reverse返回的节点(新开始节点)和pre相连。
pre指向bg,作为下一个待翻转部分的前驱。
end指向pre,从pre出发数k个节点。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode dummy = new ListNode(0, head);ListNode pre = dummy, end = dummy;while (end.next != null) {for (int i = 0; i < k && end != null; ++i) end = end.next; // 注意只要访问next节点,就要检查这个节点是否为空if (end == null) break;ListNode bg = pre.next;ListNode nxt = end.next;end.next = null;pre.next = reverse(bg);bg.next = nxt;pre = bg;end = pre;}return dummy.next;}private ListNode reverse(ListNode head) { ListNode pre = null;ListNode cur = head;while (cur != null) {ListNode nxt = cur.next;cur.next = pre;pre = cur;cur = nxt;}return pre;}
}
http://www.lryc.cn/news/267601.html

相关文章:

  • jQuery的事件-动画-AJAX和插件
  • 【开源】基于JAVA语言的企业项目合同信息系统
  • 遗传算法的应用——求解一元函数的极值
  • Power BI 学习
  • PPT中加入页码
  • xxl-job使用笔记
  • 微短剧,会成为长视频的“救命稻草”吗?
  • web架构师编辑器内容-创建业务组件和编辑器基本行为
  • 力扣刷题记录(18)LeetCode:474、518、377、322
  • MongoDB创建和查询视图(一)
  • paddle 53 基于PaddleClas2.5训练自己的数据(训练|验证|推理|c++ 部署)
  • 智能优化算法应用:基于卷积优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 项目中日期封装
  • 7.仿若依后端系统业务实践
  • java:4-9键盘输入
  • 制作自己的 Docker 容器
  • Linux的账号及权限管理
  • Flink 状态管理与容错机制(CheckPoint SavePoint)的关系
  • CSS中更加高级的布局手段——定位之绝对定位
  • SQL server 数据库练习题及答案(练习3)
  • 太绝了!这个食堂服务,戳中了打工人的心巴!
  • 围栏中心点
  • 【go-zero】simple-admin框架 整合ent mysql批量插入 | ent批量插入mysql
  • 漏洞复现-泛微OA xmlrpcServlet接口任意文件读取漏洞(附漏洞检测脚本)
  • Flink CDC 1.0至3.0回忆录
  • c语言例题7
  • 【Linux驱动】最基本的驱动框架 | LED驱动
  • 前端---表单提交
  • [C#]Parallel使用
  • docker container 指定gpu设备