public class Solution {
/**
*
* @param head ListNode类
* @param k int整型
* @return ListNode类
*/
public ListNode reverseKGroup (ListNode head, int k) {
// write code here
ListNode cur = head;
int count = 0;
// 找到待反转的第k个结点
while (cur != null && count != k) {
cur = cur.next;
count++;
}
if (count == k) {
// 递归
cur = reverseKGroup(cur, k);
// 反转列表
while (count != 0) {
count--;
ListNode tmp = head.next;
head.next = cur;
cur = head;
head = tmp;
}
// 拼接后续的链表
head = cur;
}
return head;
}
}
10-19
124
05-04
2956
12-14
2007