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

力扣面试150题--K 个一组翻转链表

Day 35

题目描述

在这里插入图片描述

思路

做法:

  1. 找最后一个需要反转的元素
  2. 每个小组内进行反转
  3. 分为三类点
  4. 组内的第一个点,使用before记录这个点,用于其后面的节点指向前一个节点。移动到下一个节点。
  5. 组内不是第一个点也不是最后一个点的其余点,将该节点指向前一个节点,设置该节点为前一个节点,向后移动
  6. 组内最后一个点,先将这个点指向前一个节点,将这一组前的最后一个节点指向它,将该组的第一个元素下一个指向这个节点的下一个。记录本组最后一个元素以及下一组的第一个元素。
  7. 循环到最大的元素结束
/*** 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 fakehead = new ListNode();if(k==1){return head;}else{fakehead.next = head;//空头结点ListNode x=head;int i=1;while(x!=null){x=x.next;i++;}int len=i-1;//统计链表长度int max=(len/k)*k;//最后一个需要倒序的元素x=head;i=1;ListNode before=head;//指向前一个节点ListNode beg=fakehead;//指向上一组的最后一个元素while(i<=max){if(i%k==1){//小组中第一个元素before=x;x=x.next;i++;}else if(i%k!=1&&i%k!=0){//到小组中的元素ListNode xia=x.next;x.next=before;before=x;x=xia;i++;}else{//小组中最后一个元素ListNode xia=x.next;x.next=before;ListNode s=beg.next;beg.next=x;s.next=xia;beg=s;x=xia;i++;}}}return fakehead.next;  }
}
http://www.dtcms.com/a/160781.html

相关文章:

  • Linux0.11引导启动程序:简略过程
  • 深入蜂窝物联网 第三章 LTE-M(Cat-M1)详解:省电机制与移动特性
  • Spring系列六:JdbcTemplate
  • 【Rust通用集合类型】Rust向量Vector、String、HashMap原理解析与应用实战
  • case和字符串操作
  • Elastic Platform 8.18 和 9.0:ES|QL Lookup Joins 功能现已推出,Lucene 10!
  • 泰迪杯实战案例超深度解析:特殊医学用途配方食品数据分析与智能推荐系统设计
  • 零成本AI抠图终极指南:蓝耘元生代AIDC OS+ComfyUI实现商业级效果
  • 检查IBM MQ SSL配置是否成功
  • 比亚迪在智能化上,想再赢一次?
  • 从Flask到智能体:装饰器模式在AI系统中的架构迁移实践
  • 轻舟系列FPGA加速卡:大模型分布式训练中的高效协同者
  • 如何在idea中写spark程序
  • 【现代深度学习技术】循环神经网络07:通过时间反向传播
  • 什么是VR相机?VR相机的发展历史
  • Git技巧:Git Hook,自动触发,含实战分享
  • 绘制板块层级图
  • AI与机器人外科手术:如何用智能化技术提升手术精度与安全性?
  • docker镜像构建常用参数
  • 实战篇:在QEMU中编写和调试VHost/Virtio驱动
  • [4282]PHP跨境电商源码-多语言商城源码/支持代理+商家入驻+分销+等等众多功能/带详细安装
  • 网工笔记-网络层
  • IS论文分享Estimating the Impact of “Humanizing” Customer Service Chatbots
  • 《AI大模型应知应会100篇》第39篇:多模态大模型应用:文本、图像和音频的协同处理
  • 探针台维护方法
  • EasyRTC嵌入式音视频通信SDK智能安防与监控系统的全方位升级解决方案
  • [Python开发] 如何用 VSCode 编写和管理 Python 项目(从 PyCharm 转向)
  • 局域网传文件——基于flask实现
  • 亚马逊云科技2025战略解析:AI驱动下的全球生态重塑
  • uni-app vue3 实现72小时倒计时功能