本**的作用是將乙個鍊錶按逆序排列,若煉表為空鍊錶或只含有乙個結點則無需進行處理。
在主函式中建立乙個空鍊錶,然後用頭插法依次插入元素,則其資料域依次存入的值為:8,7,6,5,4,3,2,1,;在reverse函式中對其進行逆序處理。若不是空鍊錶或只有乙個結點的鍊錶則繼續對其進行操作。
用p1,p2,p3分別對應第一到第三個節點,第一步執行紅色線條對應的操作,得到的結果是:頭結點和第二個結點指向第乙個結點,第乙個節點指向第二個結點,p3存放第三個結點的位址。
重複此流程直至p3指向null,此時執行(*pphead)->next = null(將第乙個結點的指標域指向null),*pphead = p2(將頭結點指向最後乙個結點),這樣就完成了鍊錶的逆序排列。
將乙個鍊錶按逆序排列,即將鏈頭當鍊尾,鏈尾當鏈頭。
將乙個鍊錶按逆序排列,即將鏈頭當鍊尾,鏈尾當鏈頭。程式的執行示例如下 請輸入鍊錶 非數表示結束 結點值 3 結點值 4 結點值 5 結點值 6 結點值 7 結點值 end 原來表 3 4 5 6 7 反轉表 7 6 5 4 3 include include typedef struct link ...
逆序建立乙個鍊錶
本題要求實現乙個函式,按輸入資料的逆序建立乙個鍊錶。函式介面定義 struct listnode createlist 函式createlist利用scanf從輸入中獲取一系列正整數,當讀到 1時表示輸入結束。按輸入資料的逆序建立乙個鍊錶,並返回煉表頭指標。鍊錶節點結構定義如下 struct lis...
將乙個鍊錶進行反轉
面試題16 反轉鍊錶 定義乙個函式,輸入鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點。struct listnode 建立鍊錶 listnode createlistnode int value 連線鍊錶的兩個結點 void connectlistnode listnode pcurrent,l...