附加到链接列表,代码并不总是有效

时间:2014-06-18 18:05:49

标签: c linked-list append

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

当附加到链接列表时,我们的教授在幻灯片中写下了这段代码,他说这并不总是有效。你能解释一下为什么吗?

3 个答案:

答案 0 :(得分:1)

您没有确定new_node->next == NULL,至少在此代码中没有。

答案 1 :(得分:0)

head == NULL的情况下,您将在while (walker->next != NULL)取消引用NULL指针,可能会导致程序崩溃。

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

答案 2 :(得分:0)

你应该在while循环之前添加一个条件来检查walker是NULL还是NOT。

if(walker==NULL)
{
  head = new_node;
  return;
}