轉載請注明出處:
本文分别用非遞歸和遞歸兩種方式實作了連結清單的反轉,在九度OJ上AC。
<dl></dl>
<dt>題目描述:</dt>
<dd></dd>
輸入一個連結清單,反轉連結清單後,輸對外連結表的所有元素。
(hint : 請務必使用連結清單)
<dt>輸入:</dt>
輸入可能包含多個測試樣例,輸入以EOF結束。
對于每個測試案例,輸入的第一行為一個整數n(0<=n<=1000):代表将要輸入的連結清單的個數。
輸入的第二行包含n個整數t(0<=t<=1000000):代表連結清單元素。
<dt>輸出:</dt>
對應每個測試案例,
以此輸對外連結表反轉後的元素,如沒有元素則輸出NULL。
<dt>樣例輸入:</dt>
<dt>樣例輸出:</dt>
很明顯,翻轉後,尾節點和頭結點互換了。
我們需要設定三個指針,分别指向目前要反轉的節點、目前要反轉節點的前一個節點、目前要反轉節點的下一個節點。要注意連結清單為空,以及隻有一個頭結點的情況。
非遞歸實作如下:
遞歸實作如下:
根據題目要求,測試代碼如下:
<code>/**************************************************************</code>
<code> </code><code>Problem: 1518</code>
<code> </code><code>User: mmc_maodun</code>
<code> </code><code>Language: C</code>
<code> </code><code>Result: Accepted</code>
<code> </code><code>Time:150 ms</code>
<code> </code><code>Memory:2364 kb</code>
<code>****************************************************************/</code>