使用 for 循环创建链表

标签 c for-loop struct linked-list singly-linked-list

这是我的结构

struct ListItem{

    int data;
    struct ListItem *next;

};

假设链表的第一个节点的 data = 0,我想编写一个 for 循环来创建大小为 5 的链表,但我不知道如何工作

我尝试了以下方法

int main(int argc, char* argv[]){

    struct ListItem a;
    a.data = 0;


    for (int i = 1; i < 5; i++){
        struct ListItem *pointer = &a;
        struct ListItem nextnode;
        nextnode.data = i;
        a.next = &nextnode;
        pointer = pointer->next;

    }
}

但是结果是 a.数据 = 0 和 a.next->data = 4

最佳答案

不要修改a.取一个以 a 开头的临时节点。使其下一个指向新节点,然后将临时节点设置为新节点。也在堆中动态分配。否则,每次循环运行后内存都会被释放

关于使用 for 循环创建链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21661993/

相关文章:

objective-c - 错误预期标识符或 (

c - 如何使用for循环初始化数组?

java - 什么时候调用静态循环?

c++ 与旧库的兼容性

c# - 在 C# 中将指向结构的指针作为函数参数传递

c++ - 在结构中取消引用可变大小数组

c - 添加不相关的代码会更改同一打印的输出

c - 无法在没有 $DISPLAY for X11 的情况下自动启动 dbus-daemon。网 bean 。 Pi 作为远程主机

java - 在 for 循环中使用 Double.POSITIVE_INFINITY (Java)

python - 遍历 NumPy 矩阵列表