gpt4 book ai didi

c - 打印链表

转载 作者:太空宇宙 更新时间:2023-11-04 05:43:28 25 4
gpt4 key购买 nike

由于某些原因,我无法打印整个链表。我哪里会出错?请帮忙。提前致谢。

列表的基本结构。

struct node
{
int num;
struct node *next;
};

typedef struct node *list;

主要功能。

int main()
{
int i, j, k, l;
list head = NULL, start = NULL, temp, p;

printf("Enter the number of nodes in the list: ");
scanf("%d", &k);

链表的形成。

    for(i=0;i<k;i++)
{
if (i==0)
{
start = (list) malloc(sizeof(struct node));
start->num = i;
head = start;
head->next = NULL;
}
else
{
temp = (list) malloc(sizeof(struct node));
temp->num = i;
head->next = temp;
head->next = NULL;
}
}

打印链表。

    p = start;
while(p != NULL)
{
printf("%d", p->num);
p = p->next;
}
return 0;
}

最佳答案

你是不是错过了什么:

head->next = temp;
head->next = NULL;

您正在用 NULL 覆盖您的下一个 head。您应该首先将 head 指向 temp

head->next = temp;   // (4) see my comment on this post for 
head = temp; // (5) the meaning of the number
head->next = NULL; // (6)

编辑:顺便说一句,您应该将 head 重命名为 current/last 或类似名称。否则,可以轻松交换 headstart 的含义。

关于c - 打印链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com