leetcode 61 旋轉鍊錶

2021-09-25 18:36:53 字數 674 閱讀 1024

給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。

本題目使用雙指標演算法即可。

定義兩個指標 first 和 second,首先令 first 指向第 n 個結點。然後初始化 second 指向頭結點,而後 first 、second 指標依次向後移動,當 first 指向最後乙個結點時,first 就指向倒數第 n + 1 個結點了。此時調整指標指向,便實現了旋轉鍊錶。

本題目有個坑就是 k 可能大於元素個數。

listnode* rotateright(listnode* head, int k) 

if(count == 0)

k = k % count; // 如果 k 等於元素個數,旋轉後鍊錶等於原鍊錶

first = phead;

while(k--)

while(first->next)

// 調整指標位置,有點繞

first->next = phead->next;

phead->next = second->next;

second->next = null;

return phead->next;

}

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...