LeetCode 旋轉鍊錶 C語言版

2021-08-24 18:21:29 字數 868 閱讀 7425

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

輸入:1->2->3->4->5->null, k = 2

輸出:4->5->1->2->3->null

解釋:向右旋轉 2 步: 4->5->1->2->3->null

解題思路 : 首先用len記錄鍊錶長度 , 只需要用k模上len, 就可以判斷是否鍊錶是否需要旋轉, 然後將鍊錶可以分成1->2->3 和 4->5->nulll兩部分, 最終只需要將後面的掛到前面即可: 4->5->1->2->3->null;

**如下:

/**

* definition for singly-linked list.

* struct listnode ;

*/struct listnode* rotateright(struct listnode* head, int k)

k=k%len;

//如果k為0

if(k==0)

return head;

//計算出鍊錶分界點所要走的步數

len=len-k-1;

while(len--)

p2=p2->next;

//記錄第二部分的頭結點

p3=p2->next;

p1=p3;

//找出第二部分的尾節點

while(p1->next)

p1=p1->next;

p2->next=null;

p1->next=head;

return p3;

}

Leetcode 旋轉鍊錶

from 給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 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...

leetcode 旋轉鍊錶

給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 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使用陣列記錄狀態 class ...

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