1. 程式人生 > >【leetcode】61. (Medium) Rotate List

【leetcode】61. (Medium) Rotate List

解題思路:
就是修改一下連結串列結點之間的連線關係
剛開始耗時快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; } }

執行結果:

在這裡插入圖片描述