Codificar una función para copiar una lista enlazada en C ++
Necesito implementar una función auxiliar, llamada copyList, que tenga un parámetro, un puntero a un ListNode. Esta función debe devolver un puntero al primer nodo de una copia de la lista enlazada original. Entonces, en otras palabras, necesito codificar una función en C ++ que tome un nodo de encabezado de una lista vinculada y copie toda la lista vinculada, devolviendo un puntero al nuevo nodo de encabezado. Necesito ayuda para implementar esta función y esto es lo que tengo ahora.
<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>
Además, esta es la estructura de Listnode con la que estoy trabajando:
<code>struct Listnode { Student *student; Listnode *next; }; </code>
Nota: otro factor que estoy encontrando con esta función es la idea de devolver un puntero a una variable local.