鍊錶的逆置(迭代法與逆置法)

2021-09-05 11:34:31 字數 1346 閱讀 1123

鍊錶翻轉操作的順序對於迭代來說是從鏈頭往鏈尾,而對於遞迴是從鏈尾往鏈頭。

1、非遞迴(迭代)方式

node* reverselist(node* h)

return newh;

}---------------------

原文:

---------------------

原文:

實現如下:

看了博主的**後,大致了解迭代的方法,但由於自己c語言指標的欠缺,讀起來還是有點費力。現在注釋乙個小問題:

p=q;

是使 指標p 指向 指標q指向的目標 (最終是p和q指向了同一目標,這個目標就是q指向的目標)

2、遞迴方式

我們再來看看遞迴實現鍊錶翻轉的實現,前面非遞迴方式是從前面數1開始往後依次處理,而遞迴方式則恰恰相反,它先迴圈找到最後面指向的數5,然後從5開始處理依次翻轉整個鍊錶。

**如下:

node* in_reverselist(node* h)

---------------------

原文:

實現過程如圖所示:

newh指標一直指向存放5的位址空間。所以最後返回的是newh。

鍊錶的逆置

5.鍊錶的逆置 已知head指向乙個帶頭節點的單向鍊錶,鍊錶中每個結點包含資料域和指標域。用鍊錶實現該鍊錶的逆置,並輸出。例如 輸入 5 整數表示要輸入的字元個數 abcde 輸出 edcba 注意 不允許通過改變每個節點的資料域來實現效果,必須改變鍊錶連線順序發生逆置。我寫的 如下 include...

鍊錶的逆置

剛剛除錯出來,趁熱寫一下。輸入多個整數,以 1作為結束標誌,順序建立乙個帶頭結點的單鏈表,之後對該單鏈表的資料進行逆置,並輸出逆置後的單鏈表資料。input 輸入多個整數,以 1作為結束標誌。output 輸出逆置後的單鏈表資料。sample input 12 56 4 6 55 15 33 62 ...

鍊錶的逆置

oblem description 輸入多個整數,以 1作為結束標誌,順序建立乙個帶頭結點的單鏈表,之後對該單鏈表的資料進行逆置,並輸出逆置後的單鏈表資料。input 輸入多個整數,以 1作為結束標誌。output 輸出逆置後的單鏈表資料。input 12 56 4 6 55 15 33 62 1 ...