删除列表错误中的最后一个节点

Removing last node in a list error

本文关键字:最后一个 节点 错误 删除列 列表 删除      更新时间:2023-10-16

这段代码的目的是删除列表中的最后一个节点。这是有效的,但我得到一个错误,如果我试图删除列表中的最后一个值。

   bool LinkedList::removeBack()
 {
Node* temp2 = nullptr;
if(isEmpty())
{
    return false; // nothing to remove
}
else
{
    last=m_front; //starting at first node and pointing to second
    while(last->getNext()!=nullptr)     
    {
        temp2=last;         
        last=last->getNext(); //goes to end of list
    }       
    temp2->setNext(nullptr);    
    delete last; //deletes last object
    last=nullptr;//deletes the pointer
    m_size--; //reduces counter
    return true; 
}
}

在else之前添加以下代码:

else if(m_front->getNext() == nullptr)
{
    m_front->setNext(nullptr); 
    return true;
} 
else ...