LinkedList的Push_back函数出错?

时间:2014-11-29 21:35:09

标签: c++ linked-list syntax-error push-back

所以,我一直致力于链接列表的推迟,每次,我得到一些奇怪的输出,有人可以帮助看看我做错了吗?

void IntList::push_back(int ne) {
if(head == NULL)
    tail = head = new IntNode(ne);

IntNode *nes = new IntNode(ne);
IntNode *remp = head;
while (remp->next != NULL)
    remp = remp->next;
remp->next = nes;
}

我得到了一些奇怪的输出,我的电话是

IntList a;
a.push_back(46);
a.push_back(20);
a.push_back(777);
a.select_sort();
a.insert_sorted(800);
a.display();
cout << endl;

并输出20 46 46 777 800

1 个答案:

答案 0 :(得分:0)

当列表为空时,只按一个​​项目并返回

if(head == nullptr) // using nullptr instead of NULL
{
    tail = head = new IntNode(ne);
    head->next = nullptr;
    return;
}

因为在第一次推送的情况下,该项目将被插入两次。