/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode rotateRight(ListNode head, int k) { if(head == null) return null; int sum = 1; ListNode tem = head; while(tem.next != null) { sum ++; tem = tem.next; } k %= sum; if(k == 0) return head; int step = sum - k - 1; ListNode helper = head; while(step > 0) { helper = helper.next; step --; } ListNode node = helper.next; helper.next = null; tem.next = head; return node; } }