Ваш l oop:
while(temp != NULL)
завершается, когда temp
становится равным nullptr
(обратите внимание, что вам лучше использовать эту константу в C ++ вместо NULL
) и сразу после этого l oop вы разыграете temp
. Также без какой-либо причины вы присваиваете результат new
для temp
и немедленно теряете его в следующей строке кода (что приводит к утечке памяти). И вы всегда должны присваивать data
новому элементу, а не temp
(который считается последним элементом). Ваша логика c должна выглядеть примерно так:
void insert(int data)
{
Node* New = new Node();
New->data = data; // note you better do these 2 lines in constructor
New->next = nullptr;
if (head == nullptr)
{
head = New;
return;
}
Node* temp = head;
while( temp->next != nullptr ) // look for the last item
temp = temp->next;
temp->next = New;
}