1. 程式人生 > >單鏈表逆轉

單鏈表逆轉

存在 cpp 輸入 指針 light 觀察 b- true 鏈表

題目:定義一個函數,輸入一個鏈表的頭結點,反轉該鏈表並輸出反轉後鏈表的頭結點。

畫個圖吧,假設存在單鏈表
A->B->C->D->E

如果不想任何指針,該如何如何定義之類的,那麽翻轉過程可以搞成如下:

|
A->B->C->D->E
   |
B->A->C->D->E
      |
C->B->A->D->E
         |
D->C->B->A->E
            |
E->D->C->B->A

然後我們假設有三顆指針。分別為:

c:當前
n:下一個
l:上一個

這時候我們重新定義上面的執行過程,那麽有:

A->B->C->D->E

c  l  n
   |
B->A->C->D->E

c  l     n
      |
C->B->A->D->E

c  l        n
         |
D->C->B->A->E

            |
E->D->C->B->A

仔細觀察上圖,就知道如何翻轉了。

單鏈表逆轉