題目描述:
結果分析:
題目思路:
利用棧的先進後出的性質,
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...