无法删除LinkedList中的节点

时间:2016-01-20 00:25:06

标签: c++ linked-list nodes

我遇到了无法从链接列表中删除节点的问题。我的问题有另一个目的,但我已经将问题缩小到无法删除上一个节点。

void deleteNodes(LN<T>*& l) {

    if (l == nullptr) return;
    LN<T> *temp = nullptr;

    for (LN<T> *current = l->next, *previous = l; current != nullptr && previous != nullptr; previous = current, current = current->next) {
        delete previous;
    }
}

尝试删除上一个节点会导致程序崩溃错误/无限循环。

新更新:如果我删除&#34; previous = current&#34;并且只删除前一次我得到一个无限循环。

1 个答案:

答案 0 :(得分:0)

为什么要在for循环中使用所有内容

您可以使用简单的代码结构来实现。试试这种方式,可能是因为代码中给出了for循环。

void deleteNodes(LN<T>*& l) {

if (l == nullptr) return;
LN<T> *temp = nullptr;

*previous = l; 

for (LN<T> *current = l->next; current != nullptr; current = current->next){

  if(previous != nullptr){  
    previous->next=nullptr;
    delete previous;
    previous = current;


  }

   else
     break;
}

    previous->next=nullptr;
    delete previous;
}