劍指offer 反轉鍊錶

2022-08-14 18:54:07 字數 589 閱讀 8832

1. 利用棧:後進先出

將鍊錶從頭到尾壓入棧中,再從棧中pop出來,對鍊錶從頭到尾賦值。

1/*2

struct listnode 8};

*/9class

solution

19 p=phead;

20while(!s.empty())

2126

return

phead;27}

28 };

2. 頭插法

從第二個到最後乙個結點,把每個結點從鍊錶頭部插入。

1/*2

struct listnode 8};

*/9class

solution

29 first->next=null;

30return

phead;31}

32 };

3. 學習大佬寫的遞迴,有助於理解遞迴的本質

1/*2

struct listnode 8};

*/9class

solution

19 };

劍指offer 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。方法1 將單鏈表儲存為陣列,然後按照陣列的索引逆序進行反轉。方法2 使用三個指標遍歷單鏈表,逐個鏈結點進行反轉。方法3 從第2個節點到第n個節點,依次逐節點插入到第1個節點 head節點 之後,最後將第乙個節點挪到新錶的表尾。public class l...

劍指offer 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。1.非遞迴 struct listnode class solution listnode ppre null listnode p phead listnode pnext null while p null else p pnext return p...

《劍指offer》 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。之前錯誤的寫法,一直不明白 原因是移位的時候,pcurr移到下一位時,裡面的值已經變成反向指標了,所以不能成功移動,就迴圈巢狀進去了,所以還需要乙個變數pnext來儲存移位前的值。struct listnode class solution phead ...