Re: [问题] 关于link list的题目

楼主: ahabook (无聊的书)   2016-02-01 17:33:15
※ 引述《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;
}
作者: LoserOfLove (LOL)   2016-02-01 17:37:00
题目说只能用A指标耶...
作者: LPH66 (-6.2598534e+18f)   2016-02-01 19:10:00
这样最后一个节点没有被 delete其实这篇的第一行加到原 PO 的答案前面就行了
作者: LoserOfLove (LOL)   2016-02-01 21:20:00
楼上正解,谢谢你们帮忙~~

Links booklink

Contact Us: admin [ a t ] ucptt.com