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

Antworten auf die Frage(10)

Ihre Antwort auf die Frage