链接列表删除功能异常

时间:2014-11-09 11:55:04

标签: c++

我有一些研究要做即将进行的C ++评估,我的deleteNode函数有问题。我知道问题出在函数内部,因为我复制了以前的deleteNode函数并且工作正常。我所有其他的pushback / pushfront函数都运行正常,我宁愿知道问题而不是忽略它但我可以&#39发现它是为了我的生命。

因此,链表存储了Employees,其名称(字符串)和工资(double)。我的deleteNode匹配员工的姓名和传入的字符串参数。如果有人能发现我的错误,那将对我的学习有很大的帮助!

bool EmployeeList::deleteNode(std::string n){
EmployeeNode *leadptr = head, *trailptr = nullptr;

if (head != nullptr){
    if (head->emp.name == n){
        head = head->next;
        delete leadptr;
        return true;
    }
    else{
        while (leadptr != nullptr && leadptr->emp.name != n){
            trailptr = leadptr;
            leadptr = leadptr->next;
        }
        if (leadptr = nullptr){
            return false;
        }
        else{
            trailptr->next = leadptr->next;  //access violation here, leadptr may be null
            delete leadptr;
            return true;
        }
    }
}
}

1 个答案:

答案 0 :(得分:1)

这是作业

    if (leadptr = nullptr){

更正将是

    if (leadptr == nullptr){