鍊錶的逆置

2021-09-19 08:17:24 字數 1279 閱讀 7923

剛剛除錯出來,趁熱寫一下。

輸入多個整數,以-1作為結束標誌,順序建立乙個帶頭結點的單鏈表,之後對該單鏈表的資料進行逆置,並輸出逆置後的單鏈表資料。

input

輸入多個整數,以-1作為結束標誌。

output

輸出逆置後的單鏈表資料。

sample input

12 56 4 6 55 15 33 62 -1

sample output

62 33 15 55 6 4 56 12

hint

不得使用陣列。

這裡借用網上的講一下:

1.剛開始順序鍊錶是這樣的:

開始令 p=head;

2.然後另開乙個 *new,令new指向null:

3.然後就要交換1和2節點,需要借助另乙個 *temp幫助交換,因為如果直接講將節點2的 next直接指向1,那後面的3,4,5就找不到,在2那裡丟失了,先令 temp=p->next(將後面的位址暫時存到temp裡面),然後p->next=new(即把當前p代表的節點與new連線)然後令new=p(下次在進行上述操作時,就是將再後面的乙個節點2連在節點1上,以此類推。。)最後在把temp還給 p,p=temp(接著用p進行下次以上操作):

這個是乙個更加詳細全面的逆置講解部落格(出處):

下面是這道題的**:

#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int maxn=1e5+7;

const int inf=1e5+7;

struct node*head,*temp,*p,*new,*t;

int main()

p=head;

new=null;

while(p!=null)

while(new->next!=null) //輸出新鍊錶的date

return 0;

}

鍊錶的逆置

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

鍊錶的逆置

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

鍊錶之鍊錶的逆置

題目 資料結構實驗之鍊表三 鍊錶的逆置 time limit 1000 ms memory limit 65536 kib submit statistic discuss problem description 輸入多個整數,以 1作為結束標誌,順序建立乙個帶頭結點的單鏈表,之後對該單鏈表的資料進...