筆試題(單向鏈表)
單向鏈表的`反轉(zhuǎn)是一個(gè)經(jīng)常被問(wèn)到的一個(gè)面試題,也是一個(gè)非;A(chǔ)的問(wèn)題,
筆試題(單向鏈表)
。比如一個(gè)鏈表是這樣的:1->2->3->4->5
通過(guò)反轉(zhuǎn)后成為5->4->3->2->1。
最容易想到的方法遍歷一遍鏈表,利用一個(gè)輔助指針,存儲(chǔ)遍歷過(guò)程中當(dāng)前指針指向的下一個(gè)元素,然
后將當(dāng)前節(jié)點(diǎn)元素的指針?lè)崔D(zhuǎn)后,利用已經(jīng)存儲(chǔ)的指針往后面繼續(xù)遍歷。源代碼如下:
struct linka {
int data;
linka* next;
};
void reverse(linka*& head) {
if(head ==NULL)
return;
linka *pre, *cur, *ne;
pre=head;
cur=head->next;
while(cur)
{
ne = cur->next;
cur->next = pre;
pre = cur;
cur = ne;
}
head->next = NULL;
head = pre;
}
【筆試題(單向鏈表)】相關(guān)文章:
2.筆試題(鏈表)
5.鏈表面試題-一個(gè)鏈表的結(jié)點(diǎn)結(jié)構(gòu)
7.鏈表題
8.360筆試題目