Re: [問題] 關於link list的題目

看板C_and_CPP作者 (無聊的書)時間9年前 (2016/02/01 17:33), 9年前編輯推噓3(301)
留言4則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《LoserOfLove (LOL)》之銘言: : 附上題目截圖 : http://imgur.com/7P0TSnX
: 想請問第三小題,我一開始想到的解法如下: : while (A->rlink != NULL) { : A = A->rlink; : delete A->llink; : } : delete A; : A = NULL; : 邏輯看似是對的,但實際執行時,發現被delete的記憶體空間並不會是NULL,而是亂數 : 所以當delete到最後一個節點時,此節點的rlink雖然已經被delete了,但不是NULL : 導致A->rlink != NULL這個條件判斷變成無限迴圈 : 這題該怎麼解?不知道版上的朋友有沒有什麼建議? 我來試看看 A->llink->rlink =NULL; if(A!=A->rlink) { A = A->rlink; while(A!= NULL) { dletet A->llink; if(A->rlink==NULL) { delete A; A=NULL; break; } A=A->rlink; } } if(A) { delete A; A=NULL; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.70.82 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1454319199.A.1E7.html

02/01 17:37, , 1F
題目說只能用A指標耶...
02/01 17:37, 1F
※ 編輯: ahabook (60.251.70.82), 02/01/2016 17:58:18 ※ 編輯: ahabook (60.251.70.82), 02/01/2016 18:02:35 ※ 編輯: ahabook (60.251.70.82), 02/01/2016 18:05:20 ※ 編輯: ahabook (60.251.70.82), 02/01/2016 18:09:45

02/01 19:10, , 2F
這樣最後一個節點沒有被 delete
02/01 19:10, 2F

02/01 19:26, , 3F
其實這篇的第一行加到原 PO 的答案前面就行了
02/01 19:26, 3F

02/01 21:20, , 4F
樓上正解,謝謝你們幫忙~~
02/01 21:20, 4F
※ 編輯: ahabook (60.251.70.82), 02/02/2016 10:27:50
文章代碼(AID): #1MhoPV7d (C_and_CPP)
文章代碼(AID): #1MhoPV7d (C_and_CPP)