單鏈表倒置

2022-02-19 07:03:06 字數 481 閱讀 4384

單鏈表倒置可以說是面試中提問率最高的題目了。網上有很多單鏈表倒置的演算法,但是實現解釋的不是很清晰。總結了一些演算法之後,把我自己認為好理解的簡單方便的演算法整理下來,方便以後自己複習。

1.迭代

下面的**及注釋應該很好的解釋了頭插法來實現單鏈表倒置的思路。

1 node* reverse(node*node)  214

return prev; //

迴圈結束後,p即為倒置後的頭結點

15 }

2.遞迴

遞迴來實現倒置最直接的描述就是入棧出棧,鍊錶節點從頭結點開始依次入棧,最後到尾節點入棧結束;開始出棧:尾節點最先出棧,出棧時依次將兩個相鄰的節點交換指向;出棧結束後,整個鍊錶的倒置就完成了。重要的地方是將最先出棧的尾節點返回,這就是倒置後的鍊錶的頭結點。

1 node* reverse_recursive(node*node)

2

單鏈表倒置

單鏈表倒置,想要倒置應先整理一下倒置的思路,應先知道鍊錶分為幾種 typedef struct node linklist 2.雙向鍊錶 在雙向鍊錶中它的每個資料結點中都有兩個指標 分別指向直接後繼和直接前驅,資料域儲存資料。結構如下 typedef struct doublenode double...

單鏈表的倒置

今天晚上作老師布置的作業,一道是單鏈表的倒置,可把我搞慘了.這裡也把我可悲的經歷與大家說一下,提個醒免得以後犯和我一樣的很傻的錯誤 老師在ppt寫好了函式介面,於是我就直接把它拷貝到vs 2005 express 中編寫,寫好了,ctrl 7 進行編譯,error c4335 檢測到 mac 檔案格...

單鏈表 單鏈表的倒置

例2 4 已知單鏈表h,寫一演算法將其倒置,即實現如圖2.14所示的操作,其中 a 為倒置前,b 為倒置後。資料結構 c 語言版 2.3 單鏈表 57 h 40 60 80 45 23 11 a 倒置前 h 11 23 45 80 60 40 b 倒置後 圖2.14 單鏈表的倒置 演算法思路 由於單...