定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。
示例:
輸入: 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...