單鏈表反轉

2021-08-04 15:42:39 字數 975 閱讀 3492

1798: 演算法2-24 單鏈表反轉

時間限制: 10 sec 記憶體限制: 128 mb

提交: 189 解決: 93

[提交][狀態][討論版]

題目描述

根據乙個整數序列構造乙個單鏈表,然後將其反轉。

例如:原單鏈表為 2 3 4 5 ,反轉之後為5 4 3 2

輸入 輸入包括多組測試資料,每組測試資料佔一行,第乙個為大於等於0的整數n,表示該單鏈表的長度,後面跟著n個整數,表示鍊錶的每乙個元素。整數之間用空格隔開

輸出 針對每組測試資料,輸出包括兩行,分別是反轉前和反轉後的鍊錶元素,用空格隔開

如果鍊錶為空,則只輸出一行,list is empty

樣例輸入

5 1 2 3 4 5

0 樣例輸出

1 2 3 4 5

5 4 3 2 1

list is empty

#include

#include

<

string

.h>

typedef struct lnode

lnode,*

list;

void initlinklist(list

&l1,list

&l2)

void get(list

&l2,int n)

}void print1(list l1,list l2)

}void print2(list l2,list l1)

}int main()

get(linklist2,n);

print1(linklist1,linklist2);

printf("\n");

print2(linklist2,linklist1);

printf("\n");

}}

單鏈表反轉

單鏈表反轉,可以用迴圈做,當然也可以遞迴 詳見 include includestruct node 3 1 4 6 2 1 1 3 4 6 2 2 4 1 3 6 2 3 6 4 1 3 2 4 2 6 4 1 3 5 迴圈反轉,即依次改動3個指標值,直到鍊錶反轉完成 比如,上面第 1 行到第 2...

反轉單鏈表

include stdafx.h include include using namespace std struct listnode typedef listnode plistnode typedef plistnode list list creatlist return head void...

單鏈表反轉

想起很早以前某次面試,面試官很嚴肅的要求我現場手寫單鏈表反轉的 哥虎軀一震,心想 不就需要要個臨時變數來記錄位址嗎,用得著這樣煞有介事?雖然在那之前我的確沒寫過這個程式,哈哈哈 當時我草草寫了十來行 面試官不等我完成,就直接拿過去開始問問題。不知道是不是因為抗壓能力不足,在面試官的不斷 盤問 下,哥...