почему этот код для вставки узла в конец связанного списка вызвал ошибку сегментации - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь реализовать функцию связанного списка для добавления узла в конец списка, но она вызывает ошибку сегментации почти в каждой строке.

SinglyLinkedListNode * insertNodeAtTail (SinglyLinkedListNode * head, int Data) {

SinglyLinkedListNode* Node;
Node = malloc(sizeof(SinglyLinkedListNode));

SinglyLinkedListNode* current; 
current = head;


Node->data = Data;
Node->next = NULL;

if( head->next == NULL)     /* 0 element llist*/
{
    head = Node;
}
else
{
    //current = head;
    /*
            while(current->next != NULL) 
    */
    while(current->next != NULL)
    {
        current = current->next;
    }  // exit when current->next = lastNode->next = NULL
    current->next = Node;

}

1 Ответ

0 голосов
/ 12 марта 2020

Это может вызвать ошибку сегмента:

while(current->next != NULL)  /* if current is NULL 
dereferencing it will cause segfault. */
...