C 添加到链表后,代码不';我不总是工作

C 添加到链表后,代码不';我不总是工作,c,linked-list,append,C,Linked List,Append,当添加到一个链表时,我们的教授在幻灯片中写下了这段代码,他说这并不总是有效的。你能给我解释一下原因吗?你没有确保新节点->下一步==NULL,至少在这段代码中没有。在头==NULL的情况下,你会在(walker->next!=NULL)的时候取消对空指针的引用,可能会使程序崩溃 您需要添加一个if语句来检查head是否为NULL。您应该在while循环之前添加一个条件来检查walker是否为NULL void AppendList (Node *new_node, Node *head) {

当添加到一个链表时,我们的教授在幻灯片中写下了这段代码,他说这并不总是有效的。你能给我解释一下原因吗?

你没有确保
新节点->下一步==NULL
,至少在这段代码中没有。

头==NULL
的情况下,你会在(walker->next!=NULL)的时候取消对空指针的引用,可能会使程序崩溃


您需要添加一个if语句来检查head是否为NULL。

您应该在while循环之前添加一个条件来检查walker是否为NULL

void AppendList (Node *new_node, Node *head) {
    Node *walker = head;
    while (walker->next != NULL)
        walker = walker->next;
    walker->next = new_node;
}
if(walker==NULL)
{
  head = new_node;
  return;
}