鍊錶K個節點翻轉

2021-08-04 07:13:05 字數 659 閱讀 5588

題目描述:

結果分析:

題目思路:

利用棧的先進後出的性質,

1、將需要翻轉的結點壓入棧中;

2、將需要翻轉的最後一節結點的後乙個結點儲存下來;

3、定義乙個頭結點,將棧中結點,取棧頂結點,鏈結起來;

4、當棧中資料全部取出後,將儲存的後乙個結點鏈結起來;返回頭結點即可。

**實現:

listnode* rotatelist(listnode* list, size_t k)

} listnode* node = p;//儲存需翻轉結點的後乙個節點

head = p = s.top();//連線節點資料

s.pop();

int size = s.size();

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

p->next = node;

} return head;

}

如果需要翻轉n個節點:時間複雜度為:o(n)

測試用例:

void text()

k 節點鍊錶翻轉

給你乙個鍊錶,每 k 個節點一組進行翻轉,請你返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼請將最後剩餘的節點保持原有順序。示例 給你這個鍊錶 1 2 3 4 5 當 k 2 時,應當返回 2 1 4 3 5 當 k 3 時,應當返回 3 2 1...

鍊錶中的節點每k個一組翻轉

題目描述 將給出的鍊錶中的節點每 k 個一組翻轉,返回翻轉後的鍊錶 如果鍊錶中的節點數不是 k 的倍數,將最後剩下的節點保持原樣 你不能更改節點中的值,只能更改節點本身。要求空間複雜度 o 1 例如 給定的鍊錶是1 2 3 4 5 對於 k 2 你應該返回 2 1 4 3 5 對於 k 3,你應該返...

k個一組翻轉鍊錶

題目描述 給出乙個鍊錶,每 k 個節點一組進行翻轉,並返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼將最後剩餘節點保持原有順序。示例 給定這個鍊錶 1 2 3 4 5當 k 2 時,應當返回 2 1 4 3 5當 k 3 時,應當返回 3 2 1...