题目:
将给定的链表向右转动k个位置,k是非负数。
例如:
给定1->2->3->4->5->null , k=2,
返回4->5->1->2->3->null。
https://www.nowcoder.com/questionTerminal/afbec6b9d4564c63b2c149ccc01c5678
作者:wanlanwalan
思路:先计算出len,然后首尾相连,从尾走len-n%len
步,新head便是p.next
ListNode rotateRight(ListNode head,int n){
if(head==null) return null;
int len=1;
ListNode end=head;
while(end.next!=null){
len++;end=end.next;
}
n=len-n%len;//important
end.next=head;
for(int i=0;i<n;i++)
end=end.next;
head=end.next;
end.next=null;
return head;
}