資料結構與演算法 反轉鍊錶

2021-10-18 07:43:23 字數 737 閱讀 4051

定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。

示例:

輸入: 1->2->3->4->5->null

輸出: 5->4->3->2->1->null

限制:

0 <= 節點個數 <= 5000

本題最簡單的方法是用棧。但如果考慮到使空間複雜度最小,可以使用前後雙指標法

/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

return prev;}}

;

注意點:

之所以使得*prev初始化為nullptr*curr初始化為head,是為了使得反轉鍊錶後,最末元素是nullptr

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

return prev;

}}

時間複雜度

空間複雜度

o(n)

o(1)

鍊錶的反轉python 資料結構與演算法

例如 輸入 2,3,4,5,none 輸出 5,4,3,2,none 步驟 1首先使用兩個指標分別指向鍊錶第乙個和第二個位置,第二指標nxt儲存第二個位置,並建立為none的result,步驟2,將乙個元素指向result,result的起始值為none 將result current儲存了第乙個元...

Python實現資料結構與演算法 反轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 高階 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?思路1 迭代 假設有鍊錶1 2 3 4 5 none,反轉後得none 這個過程相當於,在遍歷鍊錶的過程中,每乙個當前節點的next,由原來的指...

C 鍊錶的反轉(資料結構與演算法)

建立乙個鍊錶,然後將其中的元素進行反轉。include includestruct node void display link struct node head printf n struct node new link p2 p1 if i 10 p1 struct node malloc si...