104年升等薦任資料結構 - 考試

Table of Contents

附上題目截圖
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這個條件判斷變成無限迴圈

這題該怎麼解?不知道版上的朋友有沒有什麼建議?

--

All Comments

Sandy avatarSandy2016-02-03
A-》llink = null?
William avatarWilliam2016-02-03
強制給。位址還回去了,但不一定要給你一個非0的地址。
Skylar Davis avatarSkylar Davis2016-02-05
我覺得在A處再設定一指標p 然後去判斷有無循環到p 亦可
Ivy avatarIvy2016-02-09
題目說只能用A指標