@@ -0,0 +1,1961 @@
+public class Solution %7B%0A    private class Pair %7B%0A        ListNode first;%0A        ListNode second;%0A        %0A        Pair(ListNode l, ListNode r) %7B%0A            first = l;%0A            second = r;%0A        %7D%0A    %7D%0A    public int listSize(ListNode head) %7B%0A        if (head == null) return 0;%0A        ListNode p = head;%0A        int size = 0;%0A        %0A        while (p != null) %7B%0A            ++size;%0A            p = p.next;%0A        %7D%0A        return size;%0A    %7D%0A    %0A    public Pair splitAt(ListNode head, int k) %7B%0A        if (head == null) return new Pair(null, null);%0A        if (k == 0) return new Pair(null, head);%0A%0A        ListNode left = null;%0A        ListNode right = null;%0A        %0A        ListNode p = null;%0A        ListNode q = head;%0A        %0A        while(k-- %3E 0 && q != null) %7B%0A            if (p == null) %7B%0A                p = new ListNode (q.val);%0A                left = p;%0A            %7D else %7B%0A                p.next = new ListNode(q.val);%0A                p = p.next;%0A            %7D%0A            q = q.next;%0A        %7D%0A        p = null;%0A        while(q != null) %7B%0A            if (p == null) %7B%0A                p = new ListNode(q.val);%0A                right = p;%0A            %7D else %7B%0A                p.next = new ListNode(q.val);%0A                p = p.next;%0A            %7D%0A            q = q.next;%0A        %7D%0A        return new Pair(left, right);%0A    %7D%0A    public ListNode concat(ListNode left, ListNode right) %7B%0A        if (left == null) return right;%0A        if (right == null) return left;%0A        %0A        ListNode p = left;%0A        %0A        while(p.next != null) %7B%0A            p = p.next;%0A        %7D%0A        %0A        p.next = right;%0A        %0A        return left;%0A    %7D%0A    public ListNode rotateRight(ListNode head, int k) %7B%0A        if (head == null) return null;%0A        int size = listSize(head);%0A        if (k %3E= size) k = k %25 size;%0A        if (k == 0) return head;%0A        Pair p = splitAt(head, size-k);%0A        return concat(p.second, p.first);%0A    %7D%0A%7D%0A

Create 61.java