【leetcode】61. (Medium) Rotate List
阿新 • • 發佈:2018-11-22
解題思路:
就是修改一下連結串列結點之間的連線關係
剛開始耗時快300ms…因為要求k相對連結串列長度的絕對大小的時候我是這麼寫的:
while(k>=len) k-=len;
其實直接k%=len; 就可以了,把這裡改過來就不會耗時太久了
提交程式碼:
class Solution{
public ListNode rotateRight(ListNode head, int k) {
if(head==null||head.next==null||k==0) return head;
int len=1;
ListNode p1= head;
// find the length of the list
while(p1.next!=null) {
len++;
p1=p1.next;
}
k%=len;
if(k==0) return head;
p1=head;
for(int i=0;i<len-k-1;i++)
p1=p1.next;
ListNode ans=p1.next;
p1.next=null;
p1=ans;
for (int i=1;i<k;i++)
p1=p1.next;
p1.next=head;
return ans;
}
}
執行結果: