Linked Listenkopf Doppelzeiger übergeben
Ich habe dies in einem Buch / Tutorial gesehen.
Wenn Sie den Kopfzeiger (der verknüpften Liste) an eine Funktion übergeben, müssen Sie ihn als Doppelzeiger übergeben.
Zum Beispiel: // Hiermit wird eine verknüpfte Liste umgekehrt, bei der der Kopf auf den ersten Knoten zeigt.
void nReverse(digit **head)
{
digit *prev=NULL;
digit *curr=*head;
digit *next;
while(curr!=NULL)
{
next=curr->next;
curr->next=prev;
prev=curr;
curr=next;
}
*head=prev;
return;
}
Dies funktioniert gut.
Es funktioniert auch, wenn ich einen einzelnen Zeiger verwende, wie
void nReverse(digit *head)
{
digit *prev=NULL;
digit *curr=head;
digit *next;
while(curr!=NULL)
{
next=curr->next;
curr->next=prev;
prev=curr;
curr=next;
}
head=prev;
return;
}
Ich habe versucht, die Liste mit dem Kopfzeiger zu drucken. Beide Funktionen funktionieren einwandfrei.
Habe ich etwas verpasst?
Vielen Dank