Codificando uma função para copiar uma lista vinculada em C ++

Eu preciso implementar uma função auxiliar, chamada copyList, tendo um parâmetro, um ponteiro para um ListNode. Essa função precisa retornar um ponteiro para o primeiro nó de uma cópia da lista vinculada original. Portanto, em outras palavras, preciso codificar uma função em C ++ que use um nó de cabeçalho de uma lista vinculada e copie toda a lista vinculada, retornando um ponteiro para o novo nó de cabeçalho. Preciso de ajuda para implementar essa função e é isso que tenho agora.

<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>

Além disso, esta é a estrutura do Listnode com a qual estou trabalhando:

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

Nota: outro fator que estou correndo com esta função é a idéia de retornar um ponteiro para uma variável local.

questionAnswers(7)

yourAnswerToTheQuestion