我必须在链表的末尾添加一个新节点。现在我收到一个错误“Item nr.1错误地将NULL作为下一个指针”。据我所知,对于函数的第一次调用,第一个节点( start )设置为NULL,但我不知道如何适当地编写这个函数。
struct product *add_product(struct product *start, int price) {
struct product *new_node, *temp;
new_node = malloc(sizeof(struct product));
new_node->next = NULL;
new_node->price = price;
if (start == NULL){
start = new_node;
}
else{
for (temp = start; temp->next != NULL; temp = temp->next)
temp->next = new_node;
}
temp = new_node;
return new_node;
}
非常感谢你的帮助。
答案 0 :(得分:2)
for (temp = start; temp->next != NULL; temp = temp->next)
应该是
for (temp = start; temp->next != NULL; temp = temp->next);
然后到达链表的末尾并在那里添加一个节点
if(start == NULL)
{
start = new_node;
return start;
}
temp = start;
while(temp->next != NULL)
temp = temp->next;
temp->next = new_node;
return start; // Return head