c++ - 将项目添加到链接列表的末尾

标签 c++ linked-list

List_cell *currPtr = list_first_;

if(list_first_ == nullptr){

    list_first_ = new_cell;
}
else{

    currPtr = list_first_;
    while(currPtr->next != nullptr){
        currPtr = currPtr->next;
        currPtr->next = new_cell;
    }
}

这是怎么回事?它似乎根本没有进入 while 循环...感谢您的帮助!

最佳答案

在到达列表末尾之前,您不想将 currPtr->next 设置为 new_cell,否则您只需在列表中的第一个元素之后添加 new_cell,然后丢失已经在列表中的任何内容列表。

List_cell *currPtr = list_first_;

if(list_first_ == nullptr){

    list_first_ = new_cell;

}
else{

    currPtr = list_first_;
    while(currPtr->next != nullptr){
        currPtr = currPtr->next;
    }
    currPtr->next = new_cell;
}

仅当您到达末尾时才会将 new_cell 添加到列表中。

关于c++ - 将项目添加到链接列表的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20614833/

相关文章:

c++ - 如何在自己的全系统模拟器上实现GDB调试?

c - 打印链表数据时只打印第一个元素

java - LinkedList 中的所有元素与添加的元素具有相同的值

c++ - 为什么迭代一个 vector 这么慢?

C++ 多维数组在幕后是如何工作的

c++ - 双向链表以及如何将迭代器移动到下一个节点

c++ - 双循环链表。新节点未插入。 C++

android - 第二个AlertDialog列表项点击基于第一个Alertdialog列表android

c# - 当 c# Outlook 插件使用 c++ 库中的函数时崩溃

c++ - 是否可以使用 GCC 编译具有特定编译器标志的代码文件的一部分?