1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
class { public ListNode reverseKGroup(ListNode head, int k) { ListNode dummy = new ListNode(0); dummy.next = head; head = dummy; while(head != null) { head = reverse(head, k); } return dummy.next;
} private ListNode reverse(ListNode head, int k) { ListNode nk = head; for (int i = 0; i < k; i++) { nk = nk.next; if (nk == null) { return null; } } ListNode n0 = head; ListNode n1 = head.next; ListNode nkplus = nk.next;
ListNode prev, curt; prev = n1; curt = n1.next;
for (int i = 1; i < k; i++) { ListNode temp = curt.next; curt.next = prev; prev = curt; curt = temp; } n0.next = nk; n1.next = nkplus; return n1; } }
|
近期评论