[問題] 單向鏈結串列的反轉

看板C_and_CPP作者 (我愛貓貓)時間15年前 (2009/07/13 01:08), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/3 (看更多)
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

07/13 01:23, , 1F
*head->link 怎麼會是用-> 且你上面的似乎都是用變數去交換
07/13 01:23, 1F

07/13 01:24, , 2F
p=p->link難道你的link不是指標???
07/13 01:24, 2F

07/13 01:25, , 3F
還是你的NodePtr是 Node*?
07/13 01:25, 3F

07/13 01:29, , 4F
對了我的NodePtr是Node*沒錯!
07/13 01:29, 4F

07/13 10:08, , 5F
怪怪的,p->link=r然後p=p->link,不就又指回head去了?
07/13 10:08, 5F

07/13 10:10, , 6F
對 我現在發現我的程式也是錯的 ><
07/13 10:10, 6F
文章代碼(AID): #1AMXYXg0 (C_and_CPP)
文章代碼(AID): #1AMXYXg0 (C_and_CPP)