作者kissurface (我愛貓貓)
看板C_and_CPP
標題[問題] 單向鏈結串列的反轉
時間Mon Jul 13 01:08:48 2009
void f(NodePtr *head)
{
NodePtr r,q,p;
q=p=*head;
if(p==NULL)return;
while(p->link!=NULL && q!=NULL){
r=p;
p=p->link;
q=p->link;
p->link=r;
}
*head->link=NULL;
*head=p;
}
上面是我寫的函數 雖然自己用筆trace好像沒什麼邏輯錯誤
但是編譯一直錯誤 我怎麼改都改不出來 想請各位高手們幫我看看
到底是哪理寫錯了呢??謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.129.163
推 QQ29:*head->link 怎麼會是用-> 且你上面的似乎都是用變數去交換 07/13 01:23
→ QQ29:p=p->link難道你的link不是指標??? 07/13 01:24
→ QQ29:還是你的NodePtr是 Node*? 07/13 01:25
→ kissurface:對了我的NodePtr是Node*沒錯! 07/13 01:29
推 khalid:怪怪的,p->link=r然後p=p->link,不就又指回head去了? 07/13 10:08
→ kissurface:對 我現在發現我的程式也是錯的 >< 07/13 10:10