[问题] 关于link list的题目

楼主: LoserOfLove (LOL)   2016-02-01 17:16:02
附上题目截图
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这个条件判断变成无限循环
这题该怎么解?不知道版上的朋友有没有什么建议?
作者: Feis (永远睡不着 @@)   2016-02-01 17:40:00
最后一个节点的 rlink 不能直接改成 NULL 吗?在 delete 之前,先处理所有指向这个物件的指标
作者: justinj (黑旋风)   2016-02-01 23:01:00
A->link如果是null就会挂了吧哦 看错 双向就指标回指回来时就是结束
作者: newkey (key)   2016-02-01 23:49:00
NCHU的考古题吗!?
作者: skypole (番薯)   2016-02-03 15:50:00
delete只是跟内存说,那个位子可以用了,指标还是会指到原先的地方
作者: niorehkids   2016-02-04 01:04:00
A->llink->rlink = NULL;

Links booklink

Contact Us: admin [ a t ] ucptt.com