是的,我在C ++中碰到单个链接的List时,遇到了这种混乱。我在insert
函数中创建了一个指针,但不确定是否要删除它。< / p>
我想,只要将它像这样推几步即可删除它:temp = temp->next->next
但它看起来很愚蠢。
void List::insert(int data){
Node* newNode = new Node(data);
newNode->next = nullptr;
if(isEmpty())
{
head = newNode;
std::cout << "empty";
}else{
Node* temp = head;
while(temp->next!=nullptr){
temp = temp->next;
}
temp->next = newNode;
delete temp; //If i remove this the program works ok and it is reasonable,since i delete the ref
}
}
我非常确定我应该删除该节点,但是我不是100%确定必须这样做。有任何线索吗?
答案 0 :(得分:0)
以下是一个线索:考虑List::size()
。插入之前有几个节点,插入之后有几个节点? new Node
创建一个节点,delete temp
删除一个节点。
现在,如果您正确解决了这些问题,则可能仍然存在一些错误,可以删除错误的节点,但是至少insert
是正确的。