public ListNode rotateRight(ListNode head, int k) {
        if (head == null || k <= 0) return head;
        ListNode n = head;
        int len = 1;
        while (n.next != null) {
            n = n.next;
            ++len;
        }
        n.next = head;
        k %= len;
        for (int i = 0; i < len - k; ++i) n = n.next;
        head = n.next;
        n.next = null;
        return head;
    }