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
| class Solution { public ListNode rotateRight(ListNode head, int k) { if (head == null) { return null; }
ListNode curr = head, tail = head; int length = 0; while (curr != null) { length++; tail = curr; curr = curr.next; }
k = k % length; if (k == 0) { return head; }
curr = head; for (int i = 0; i < length - k - 1; i++) { curr = curr.next; }
ListNode newHead = curr.next; curr.next = null; tail.next = head;
return newHead; } }
|