這道題有很強的的遞迴思維!
思路:1.遞迴實現含有k個結點的鍊錶的反轉;
2.遞迴實現各個組的反轉。
class
solution
if(count != k)
//不足k個的剩餘結點保持原有順序
listnode *newhead =
reverselist
(head, k)
; head-
>next =
reversekgroup
(p, k)
;//k個結點的鍊錶完成反轉後,head就從原來的頭結點變成了尾結點,然後尾結點與後續的完成連線即可
return newhead;
} listnode*
reverselist
(listnode* head,
int k)
//對含有k個結點的鍊錶進行反轉
K個一組反轉鍊錶
描述 給你乙個鍊錶,每 k 個節點一組進行翻轉,請你返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼請將最後剩餘的節點保持原有順序。示例 給你這個鍊錶 1 2 3 4 5 當 k 2 時,應當返回 2 1 4 3 5 當 k 3 時,應當返回 3 ...
鍊錶演算法 k個一組反轉鍊錶
如題,將鍊錶中的元素 k 個為一組,組內進行反轉,不夠 k 個的不反轉。例如 題目本身很容易理解 資料結構 private static class listnode 首先,需要乙個子函式,用於鍊錶逆序。這個算是寫爛了的題目了,但是一般都是用非遞迴來解決的,三個指標,一步一步逆序。但遞迴做更簡潔,不...
程式設計題 每K個一組反轉鍊錶
反轉鍊錶的高階版。給出乙個鍊錶,每 k 個節點一組進行翻轉,並返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼將最後剩餘節點保持原有順序。public static listnode reverselist listnode head,int k ...