我的导师将函数 remove() 定义为:
struct node
{
node *next;
int value;
}
int IntList::remove()
{
node *victim = first;
int result;
if(isEmpty()) throw listIsEmpty();
first = victim->next;
result = victim->value;
delete victim;
return result;
}
其中first
“指向代表 this 的节点序列IntList
”。
如果victim和first都指向同一个东西,我们删除了victim,这不也是delete first吗?