看板 C_and_CPP 關於我們 聯絡資訊
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