Entfernen Sie alle Knoten im Link-Liste

Ich habe eine verknüpfte Liste enthält 3 Knoten wie im Bild gezeigt:
Entfernen Sie alle Knoten im Link-Liste

Es ist ein Kopf-Zeiger und temp1 Zeiger, zeigen Sie auf der Vorderseite der Liste, und die Schwanzspitze Punkte am Ende der Liste.

Möchte ich entfernen Sie alle Knoten, und ändern Sie es zurück zu seiner ursprünglichen ersten form ( tail = NULL head = first_node , aber der erste Knoten keinen Wert in den Daten und im nächsten Feld).

Weil ich möchte damit beginnen, einige neue Werte. Entfernen Sie alle diese Daten, ist dieser code gehen, entfernen von Knoten in dieser Link-Liste und Links mit dem ersten Knoten ohne Werte im Daten-und im nächsten Feld?

Dieser code ist in C++:

while(temp1!=tail)
{
    temp1 = temp1->next;
    if(temp1->next == tail)
    {
        tail=temp1;
        temp1 = temp1->next;
        free(temp1);    
    }
}

Aber dann, bedeutet dies, dass nur der Letzte Knoten gelöscht wird? gibt es eine Möglichkeit, löschen Sie alle Knoten außer dem ersten?

  • Sollten Sie mithilfe der STL <Liste> es sei denn, Sie haben einen guten Grund zum Selbstdrehen. <Liste> unterstützt die Reinigung aller Elemente oder einen Bereich. Siehe cplusplus.com/reference/stl/list
  • es ist C, nicht C++.
  • Der Beispiel-code, den er gepostet wird, ist eigentlich gültig C und C++ und die Frage wird markiert C++.
Schreibe einen Kommentar