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;
}
}