力扣(LeetCode)61 旋轉鍊錶

2021-09-24 03:20:36 字數 1027 閱讀 3251

思路:①先計算出head鍊錶的長度

②通過觀察,發現題目的意思是從鍊錶的末尾依次取出元素放置鍊錶頭部,那麼這一定是個迴圈(參見示例2),所以在k>len的時候可以將k - n*len,那麼新的k如果和len相等,那就剛好湊成乙個迴圈,直接返回head即可,否則進入迴圈,找到第len-k個元素(頭節點為1)設為p

③temp = p->next,q = p->next,對q進行迴圈,如果q->next = null,那麼就讓q->next = head

完成上述三步,剛好湊成乙個新的鍊錶,鍊錶頭部為temp返回即可

#include#includeusing namespace std;

typedef struct listnode

listnode,*ptrtonode;

void print(ptrtonode n)

}ptrtonode insert(int val,ptrtonode n)

else

q->next = p;

}return n;

}class solution

while(k>len)

k-=len;

if(k==len)

return head;

p = head;

len-=k;

while(len>1)

q = p;

temp=p->next;

while(q->next!=null)

q=q->next;

q->next = head;

p->next = null;

return temp;

}return head;

}};int main()

head = p->next;

p->next = null;

return head;}};

leetcode 61 旋轉鍊錶

deciription 給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1 2 3 4 5 null,k 2 輸出 4 5 1 2 3 null 解釋 向右旋轉 1 步 5 1 2 3 4 null 向右旋轉 2 步 4 5 1 2 3 null示例 ...

LeetCode61 旋轉鍊錶

很久沒有寫blog了,以至於很長一段時間我都忘記了我還有乙個csdn賬號。也就是每週參加以下leetcode周競賽,膜拜一下大佬,然後發現自己真的是蠢以及一無是處,想的辦法總是,非常蠢。一般就做簡單的題目,這道題是leetcode估計實在是看不下去了,給我email說邀請我做個演算法題,我看了一下,...

LeetCode 61 旋轉鍊錶

問題描述 給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1 2 3 4 5 null,k 2 輸出 4 5 1 2 3 null 解釋 向右旋轉 1 步 5 1 2 3 4 null 向右旋轉 2 步 4 5 1 2 3 null 示例 2 輸入 0...