算法-k个一组翻转链表

发布时间:2026/9/11 13:01:38
算法-k个一组翻转链表 题目给你链表的头节点head每k个节点一组进行翻转请你返回修改后的链表。k是一个正整数它的值小于或等于链表的长度。如果节点总数不是k的整数倍那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值而是需要实际进行节点交换。示例 1输入head [1,2,3,4,5], k 2输出[2,1,4,3,5]题解思路一用双向链表解决该问题/** * 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) { LinkedListListNode link new LinkedListListNode(); ListNode cur head; int count 0; ListNode root new ListNode(); ListNode r root; while (cur ! null) { while (cur ! null count k) { ListNode temp cur.next; cur.next null; link.add(cur); cur temp; count; } while (link.size() 0) { ListNode node; if(count k){ node link.removeLast(); }else { node link.removeFirst(); } node.next r.next; r.next node; r node; } count 0; } return root.next; } }思路二用双向链表解决该问题需要使用o(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 groupHead new ListNode(); ListNode root groupHead; ListNode tail head; ListNode cur head; int count 0; while (cur ! null) { ListNode temp cur.next; cur.next groupHead.next; groupHead.next cur; cur temp; count; if (count k) { count 0; //回到尾节点 groupHead tail; //重新设置下一次的为节点 tail cur; } } if (count ! 0) { cur groupHead.next; groupHead.next null; while (cur ! null) { ListNode temp cur.next; cur.next groupHead.next; groupHead.next cur; cur temp; } } return root.next; } }

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询