Да, я возился с одиночными связанными списками в C ++ и натолкнулся на эту путаницу. Я создал указатель в функции insert
, и я не был уверен, будет ли он удален после этого.
Я думал, что смогу удалить его, если просто нажму несколько блоков примерно так: 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%, что должен. Любые подсказки?