作者ahabook (無聊的書)
看板C_and_CPP
標題Re: [問題] 關於link list的題目
時間Mon Feb 1 17:33:15 2016
※ 引述《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
推 LoserOfLove: 題目說只能用A指標耶... 02/01 17:37
※ 編輯: 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
推 LPH66: 這樣最後一個節點沒有被 delete 02/01 19:10
→ LPH66: 其實這篇的第一行加到原 PO 的答案前面就行了 02/01 19:26
推 LoserOfLove: 樓上正解,謝謝你們幫忙~~ 02/01 21:20
※ 編輯: ahabook (60.251.70.82), 02/02/2016 10:27:50