61 旋轉鍊錶

2021-10-04 12:43:55 字數 739 閱讀 4398

起初想到的思路是不斷將最後的節點用頭插法插入鍊錶,直到插入k次

class solution 

k %= len; //以防k大於鍊錶長度,以len為週期

if(k == 0)

return head;

listnode chs = head; //儲存頭節點

tmp = head;

//先將tmp向右移動k個位置

while(k > 0)

//兩個快慢指標,當tmp到達空指標處,head距離末尾正好k個距離

while(tmp.next != null)

//res為新的頭節點

listnode res = head.next;

//斷開連線,生成尾節點

head.next = null;

//後半段尾節點指向前半段頭節點

tmp.next = chs;

return res;}}

結果:

官方採用了一種思路,先將首尾閉合,想不到:

class solution 

}

結果:

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

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 1 2 nul...

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