鏈表面試題2

2021-10-07 00:03:39 字數 648 閱讀 7721

(2)、反轉鍊錶

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

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

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

class solution 

cur.next=prev;

prev=cur;

cur=curnext;

}return newhead;

}}

反轉鍊錶 ii

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。

說明:1 ≤ m ≤ n ≤ 鍊錶長度。

示例:輸入: 1->2->3->4->5->null, m = 2, n = 4

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

class solution 

listnode prev=null;

listnode cur=superior.next;

for(int i=m;i<=n;i++)

superior.next.next=cur;

superior.next=prev;

return newhead.next;

}}

鏈表面試題2

有關單鏈表的面試題2 複雜鍊錶的複製 複雜鍊錶的複製 typedef struct complexnodecomplexnode complexnode createcomplexnode linknodetype value size t diff complexnode src complexn...

鏈表面試題

不改變鍊錶結構,從尾到頭列印單鏈表 遞迴實現 void printlistrevers recursively plist phead printf d phead data 當鍊表非常長的時候,遞迴實現的會導致函式呼叫層級很深,可能導致呼叫棧溢位。用棧不會出現此類情況,顯然用棧實現 的魯棒性會好一...

鏈表面試題

從尾到頭列印單鏈表 棧 遞迴 從尾到頭列印鍊錶 includevoid printtailtohead listnode head while s.empty 空間複雜度o n void printtailtoheadr listnode head cout data 刪除乙個無頭單鏈表的非尾結點 ...