这是我的结构
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/