作者killermomo (殺Mo)
看板C_and_CPP
標題[問題] 關於單向鏈結串列反轉
時間Thu May 5 08:24:54 2011
問題(Question):
今天在實作鏈結串列反轉
想以一函式反轉串列,但輸出結果怪怪
一直找不到問題點...請程式前輩們幫忙指正一下...
餵入的資料(Input):
10 20 30 40 50
預期的正確結果(Expected Output):
50 40 30 20 10
錯誤結果(Wrong Output):
50
程式碼(Code):(請善用置底文網頁, 記得排版)
main()
{
int data=0;
node *phead =NULL;
scanf("%d",&data);
while(data!=-1)
{
AddNode(&phead,data);
scanf("%d",&data);
}
phead = reverse(phead);
ListAll(phead); //印出串列中所有資料 此函式功能測試為正常
printf("\n");
system("pause");
}
node* reverse(node *phead)
{
node *pleft = phead;
node *pmiddle = pleft->pnext;
node *pright = pmiddle->pnext;
while(pright!=NULL)
{
pmiddle->pnext = pleft->pnext;
pleft = pmiddle;
pmiddle = pright;
pright = pmiddle->pnext;
}
return pmiddle;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.105.171.204
→ killermomo:順便請問...這樣的寫法好嗎?會不會太多餘? 05/05 08:30
→ TsinTa:怎麼看都不覺得這會反轉@@" 05/05 08:55
→ lions0164:我也想問反轉和Sort該怎麼用List作.. 05/05 18:53
推 SHANGOYANYI:問題出在reverse中pmiddle->pnext=pleft->pnext;這句 05/07 10:10