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.
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;
}
Además, esta es la estructura de Listnode con la que estoy trabajando:
struct Listnode {
Student *student;
Listnode *next;
};
Nota: otro factor que estoy encontrando con esta función es la idea de devolver un puntero a una variable local.