K個一組反轉鍊錶(特別好的DFS)

2021-10-03 17:05:30 字數 627 閱讀 7648

這道題有很強的的遞迴思維!

思路: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 ...