rotate list(旋轉鍊錶)

2021-08-22 13:36:41 字數 718 閱讀 1308

題目描述

given a list, rotate the list to the right by k places, where k is non-negative.

給定乙個鍊錶,將鍊錶向右旋轉k個位置,其中k是非負的。

for example: given1->2->3->4->5->nulland k =2,

return4->5->1->2->3->null.

思路:

讓鍊錶成環,然後從頭結點開始向後面跑length-k,然後從這個部分斷開,這樣形成的新鍊錶就是旋轉之後的鍊錶

注意點:

(1)遍歷鍊錶,求出鍊錶的長度length,length應該初始化為1,這樣可以防止除0錯誤

(2)k可能會大於len,因此k = length - k%length;

**實現:

struct listnode 

};class solution

k = length - k%length;

//將鍊錶連成乙個環

pnode->next = head;

for (int i = 0; i < k; i++)

head = pnode->next;

pnode->next = null;

return head;

}};

rotate list 旋轉部分鍊錶

given a list,rotate the list to the right by k places,where k is non negative.for example given1 2 3 4 5 nulland k 2,return4 5 1 2 3 null.題目 給定乙個鍊錶,將鍊...

演算法題 rotate list 旋轉旋轉

程式設計題 rotate list 時間限制 1秒 空間限制 32768k given a list,rotate the list to the right by k places,where k is non negative.for example given1 2 3 4 5 nulland...

鍊錶 旋轉鍊錶

力扣原題 definition for singly linked list.public class listnode class solution 計算鍊錶長度 int length 0 listnode cur head while null cur 模擬k輪鍊錶旋轉 for int i 0 ...