删除一个表的不正确方法?
我对这段代码为什么不正确有疑惑!void DeleteList(List L)
{
Position P;
P = L->Next;
L->Next = NULL;
while(P != NULL)
{
free(p); //这里说是对于要被放弃的单元,应该需要一个临时的变量
P = P->Next;//因为在撤除指针的工作结束后,你将不能再引用它
}
}
而正确的做法就是
while(P !=NULL)
{
Tmp = P->Next;
free(p);
P = Tmp; //不就是加个临时变量么,为什么中间多个临时变量就是对的呢
}
本来这个应该放到数据结构板块,但那么太冷门了,所以就到这里来问了,知悉请见谅!