思路
code
public ListNode rotateRight(ListNode head, int k) {
if(head==null||head.next==null) return head; //特殊条件判断
ListNode old_tail = head; //记录原来的尾节点
int n=1; //用来记录元素个数
for(;old_tail.next!=null;n++)
old_tail= old_tail.next; //遍历记录old_tail和n
old_tail.next=head; //形成环
ListNode new_tail = head; //记录新的尾节点
for(int i=0;i<n-k%n-1;i++) //向后遍历n-k次
new_tail=new_tail.next;
ListNode new_head = new_tail.next; //记录新的头结点
new_tail.next=null; //把环断掉
return new_head; //返回新的头结点
}