Проблема : tail
всегда NULL.Как вы хотите установить соединение между tail
и добавленным узлом в вашем списке, когда tail
имеет значение NULL?
Когда список пуст и вы создаете первый узел, после вставки первого узла head
и tail
должны указывать на один и тот же узел.Измените
if(head == NULL)
{
head = new ListNode(data); // Returns the address of a new ListNode and stores it in head
tail = head->next; // tail now points to head's next
}
на
if(head == NULL)
{
tail = head = new ListNode(data); // Returns the address of a new ListNode and stores it in head
}
вторую проблему, когда вы добавляете в конец списка, вам нужно обновить tail->next
, чтобы он указывал на вставленный узел, поэтому измените
tail = new ListNode(data); // address of a new ListNode is in tail
tail = tail->next; // Tail now points to the new ListNode's next
до
tail->next = new ListNode(data); // address of a new ListNode is in tail
tail = tail->next; // Tail now points to the new ListNode's next