2017-06-20 11 views
-6

Hier ist mein Linkedlistcode zum Einfügen von Knoten am Ende. Ich bekomme den Fehlercode ausgegeben. Also bitte hilf mir was mit dem Code falsch ist.Verknüpfte Liste am Ende einfügen

wenn ich die Rückkehr behalte; am Ende und an der Zeile nach * headRef = newnode; es funktioniert. Warum also für eine Void-Funktion zurückkehren.

struct node 
{ 
    int data; // node format 
    struct node* next; 
}; 

void insertAtEnd(struct node** headRef, int newData) 
{ 
    struct node* ptr; 
    struct node* newnode; 
    ptr = (*headRef); 
    newnode = (struct node*)malloc(sizeof(struct node)); 
    newnode->data = newData; 
    newnode->next = NULL; 
    if (*headRef == NULL) 
    { 
     *headRef = newnode; 
    } 
    while (ptr->next != NULL) 
    { 
     ptr = ptr->next; 
    } 
    ptr->next = newnode; 
} 
+2

Wie Python, dass nicht verwendet? –

+2

Wählen Sie eine Sprache – kuro

+0

Um Core Dumps zu diagnostizieren, müssen wir ein komplettes Programm sehen. – zwol

Antwort

0

Sie sollten innerhalb zurückkehren, wenn denn nach if-Anweisung wieder es in kommt while-Schleife und zusätzliche Knoten am Ende

hinzufügen
struct node 
{ 
    int data; // node format 
    struct node* next; 
}; 

void insertAtEnd(struct node** headRef, int newData) 
{ 
    struct node* ptr; 
    struct node* newnode; 
    ptr = (*headRef); 
    newnode = (struct node*)malloc(sizeof(struct node)); 
    newnode->data = newData; 
    newnode->next = NULL; 
    if (*headRef == NULL) 
    { 
     *headRef = newnode; 
     return; 

    } 
    while (ptr->next != NULL) 
    { 
     ptr = ptr->next; 
    } 
    ptr->next = newnode; 
    return; 
} 
Verwandte Themen