如何使鍊錶反向

2021-09-26 15:00:46 字數 505 閱讀 2013

我的想法:

在構建單鏈表的時候採用「頭插法」,得到的就是反向;

如果已經構建好了,欲使單鏈表反向,也就是要逆序

這時候可以在首位各建立乙個指標,將首部尾部資料相互交換,直到交換到最中間。

(但這種想法似乎不太適合單鏈表呀,順序表可以用這種方法)

除了交換,還可以用遍歷然後插入的方法,依次將結點插入到固定的尾部指標後面,即可構成逆序。

linklist reverse_(linklist l)

return l;

}

此外,還有一種改變指標next域方向的做法

假設pre p r 指向三個相鄰的結點  將p的next域指向前面的pre 為防止斷鏈,用r來指向原來p的後繼結點

linklist reverse_2(linklist l)

l->next=p;//處理最後乙個結點讓頭結點指向它

return l;

}

反向列印鍊錶

方法一 翻轉鍊錶,順序輸出鍊錶中的元素 缺點改變了原來鍊錶的結果 方法二 使用棧 這種先進後出的資料結構,缺點使用額外的資料結構 方法三 遞迴 方法的遞迴就是棧 static listlist new arraylist public static void main string args 遞迴實...

鍊錶,反向鍊錶的相關操作

假設鍊錶節點的資料結構為 struct node 建立單鏈表的程式為 struct node create unsigned int n node p head for unsigned int i 1 i n i return head 問題1 鍊錶逆置 思想為 head指標不斷後移,指標反向即可...

STL鍊錶反向輸出例項

給定乙個單向鍊錶,從尾到頭輸出其每個值。include include stdio.h include include using namespace std 從尾到頭輸出list 1.遞迴方法 void list reverse1 list mylist,list iterator it 傳遞引用...