Codierung einer Funktion zum Kopieren einer verknüpften Liste in C ++

Ich muss eine Hilfsfunktion mit dem Namen copyList implementieren, die einen Parameter und einen Zeiger auf einen ListNode hat. Diese Funktion muss einen Zeiger auf den ersten Knoten einer Kopie der ursprünglichen verknüpften Liste zurückgeben. Mit anderen Worten, ich muss eine Funktion in C ++ codieren, die einen Headerknoten einer verknüpften Liste übernimmt und die gesamte verknüpfte Liste kopiert und einen Zeiger auf den neuen Headerknoten zurückgibt. Ich brauche Hilfe bei der Implementierung dieser Funktion und das habe ich gerade.

<code>Listnode *SortedList::copyList(Listnode *L) {

    Listnode *current = L;  //holds the current node

    Listnode *copy = new Listnode;
    copy->next = NULL;

    //traverses the list
    while (current != NULL) {
       *(copy->student) = *(current->student);
       *(copy->next) = *(current->next);

        copy = copy->next;
        current = current->next;
    }
    return copy;
}
</code>

Dies ist auch die Listnode-Struktur, mit der ich arbeite:

<code>struct Listnode {    
  Student *student;
  Listnode *next;
};
</code>

Hinweis: Ein weiterer Faktor, auf den ich mit dieser Funktion stoße, ist die Idee, einen Zeiger auf eine lokale Variable zurückzugeben.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage