Кодирование функции для копирования связанного-списка на C++

Мне нужно реализовать вспомогательную функцию с именем copyList, имеющую один параметр, указатель на ListNode. Эта функция должна вернуть указатель на первый узел копии исходного связанного списка. Итак, другими словами, мне нужно написать функцию на C++, которая берет узел заголовка связанного списка и копирует весь связанный список, возвращая указатель на новый узел заголовка. Мне нужна помощь в реализации этой функции, и это то, что у меня есть прямо сейчас.

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

Кроме того, это структура Listnode, с которой я работаю.:

struct Listnode {    
  Student *student;
  Listnode *next;
};

Примечание:Другим фактором, с которым я сталкиваюсь в этой функции, является идея возврата указателя на локальную переменную.

11
задан Bill the Lizard 19 September 2012 в 16:30
поделиться