public Node rotateRight(Node head, int k) {
        if (head == null || k == 0) {
            return head;
        }
        Node slow = head;
        Node fast = head;
        int i = 0;
        while (i < k && fast != null) {
            fast = fast.next;
            i++;
        }

        if (fast == null) {
            return rotateRight(head, k % i);
        }
        while (fast.next != null) {
            fast = fast.next;
            slow = slow.next;
        }
        Node next = slow.next;
        slow.next = null;
        fast.next = head;
        return next;
    }
Date 10/10/2016
@author Tushar Roy
Given a list, rotate the list to the right by k places, where k is non-negative.

Time complexity O(min(n, k))

https://leetcode.com/problems/rotate-list/
src/com/interview/linklist/RotateList.java