捡个软柿子捏一捏,结果也有不少小坑。1.n可能会比length大(或相等),所以要先%一下;2. 是向右rotate而不是向左,所以先n=len-n
public class Solution { public ListNode rotateRight(ListNode head, int n) { if (head == null) return null; int len = 0; ListNode node = head; while (node != null) { node = node.next; len++; } n = n % len; if (n == 0) return head; n = len - n; node = head; ListNode last = null; while (n != 0) { last = node; node = node.next; n--; } last.next = null; ListNode end = node; while (end.next != null) { end = end.next; } end.next = head; return node; } }