import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ public ListNode reverseKGroup (ListNode head, int k) { int size = 0; ListNode temp = head; while (temp != null) { size++; temp = temp.next; } ListNode res = new ListNode(-1); res.next = head; ListNode fre = res; //前驱结点 ListNode cur = fre.next; //当前结点 int overturn_cnt = size / k; //翻转次数 for (int i = 0; i < overturn_cnt; i++) { for (int j = 0; j < k - 1; j++) { temp = cur.next; cur.next = temp.next; temp.next = fre.next; fre.next = temp; } fre = cur; cur = fre.next; } return res.next; } }