解题思路:
class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode dum = new ListNode(0, head);ListNode pre = dum;ListNode end = dum;while (end.next != null) {for (int i = 0; i < k && end != null; i++) {end = end.next;}if (end == null) break;ListNode start = pre.next;ListNode next = end.next;end.next = null;pre.next = reverse(start);start.next = next;pre = start;end = start;}return dum.next;}public ListNode reverse(ListNode head) {ListNode pre = null;ListNode cur = head;while (cur != null) {ListNode tmp = cur.next;cur.next = pre;pre = cur;cur = tmp;}return pre;}
}