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

力扣-25.K个一组翻转链表

题目链接

25.K个一组翻转链表

class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode hair = new ListNode(0);hair.next = head;ListNode tail = hair;ListNode pre = hair;while (tail != null) {for (int i = 0; i < k; i++) {tail = tail.next;	if (tail == null) {	//这里不够k个不做操作直接返回return hair.next;}}ListNode nex = tail.next;ListNode[] res = reverse(head, k);//拼接回原链表pre.next = res[0];res[1].next = nex;//调整三指针pre、head、tailpre = res[1];head = nex;tail = res[1];}return hair.next;}public ListNode[] reverse(ListNode head, int k) {ListNode hair = new ListNode(0);ListNode p1 = head;ListNode p2 = head;while (k > 0) {p2 = p1.next;p1.next = hair.next;hair.next = p1;p1 = p2;k--;}return new ListNode[]{hair.next, head};}
}

小结:第一遍能够做出来,但是代码比较冗余且不够熟练。主要有以下几点需要注意:

  1. 变量名要有意义,如额外头结点hair,反转部分的链表头head,链表尾tail,以及暂存的指针prenex用于反转后拼接。
  2. 自己写的reverse函数可以同时返回反转后的链表头和链表尾组成数组,避免寻找链表尾时额外遍历。
http://www.dtcms.com/a/279898.html

相关文章:

  • 多线程进阶——线程安全的集合类
  • B站自动回复工具(破解)
  • Linux多进程
  • 国产IP摄像头存在隐蔽后门,攻击者可获取Root权限
  • 知识点2:MCP:python-sdk 核心概念
  • 丑团-h5-Mtgsig算法-分析
  • 技能升级--二分例题
  • 2025年大数据、建模与智能计算国际会议(ICBDMIC 2025)
  • 指针和数组(二)
  • AI 临床医学课题【总结】
  • Vue2 day08-10(智慧商城)
  • 应用系统报错:com.highgo.jdbc.util.PSQLException:bad value for long(APP)
  • DOM事件绑定时机:解决脚本提前加载导致的绑定失败
  • git modules
  • 8.6 Rag-基础工具介绍(开源工具)
  • 5、qt系统相关
  • 面试150 根节点到叶子节点数字之和
  • 机构参与度及其Python数据获取示例
  • SVD、DCT图像压缩实践
  • 020 实现一个简易 Shell
  • Java集合和字符串
  • JVM-1
  • 现场设备无法向视频汇聚EasyCVR视频融合平台推流的原因排查与解决过程
  • 常用的OTP语音芯片有哪些?
  • Gstreamer之”pad-added“事件
  • cron监控进程逻辑
  • C#中发布订阅的阻塞非阻塞
  • 微美全息借区块链与DRL算法打造资源管理协同架构,达成边缘计算与区块链动态适配
  • Function-——函数中文翻译渊源及历史背景
  • 学习笔记(35):了解原理:从密度到了解概率密度