給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 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->
null
, k =
4輸出:
2->
0->
1->
null
解釋:向右旋轉 1 步:
2->
0->
1->
null
向右旋轉 2 步:
1->
2->
0->
null
向右旋轉 3 步:
0->
1->
2->
null
向右旋轉 4 步:
2->
0->
1->
null
思想:截斷+轉移**:
struct listnode*
rotateright
(struct listnode* head,
int k)
int move_len = len - k%len;
if(move_len == len)
return head;
for(
int i =
0; i < move_len-
1; i++
) newhead = newhead->next;
temp = newhead;
newhead = newhead->next;
temp->next =
null
; tail->next = head;
return newhead;
}
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 ...