递归CopyConstr。 - 链接列表

时间:2016-12-17 16:07:57

标签: c++ recursion visual-c++ linked-list copy-constructor

首先,这是链接列表和递归练习的一部分。我试图创建一个复制构造函数,以递归方式深度复制给定的LinkedList。我已经编写了LinkedList方法。

我遇到的问题:它似乎在递归调用期间正确复制,但之后无法打印。我相信列表没有正确返回或每次都创建一个新列表。肯定有链接到头部的问题,列表存在于某个地方但是头部没有指向它?

这里是LinkedList.h文件的必要部分:

LinkedList::LinkedList(const LinkedList* list1)
{

if (list1 == NULL) { 
    std::cout << "End of Loop";
    return;
}

listLength = 0;
node newHead;
copy(list1->head,&newHead); // Start copy constructing 
}

void LinkedList::copy(const node * p1, node* p2)
{

if (p1 == NULL) {
    std::cout << "Copy Finished";
}

else { 
    node* p2 = new node;

    p2->artist = p1->artist;
    std::cout << p2->artist << "\t";
    p2->song = p1->song;
    std::cout << p2->song << "\n";

    listLength++;
     copy(p1->next,p2->next);

}

}

original list print

copied list - output correct while copying but print method fails?

复制列表的ListLength是正确的但没有输出??

0 个答案:

没有答案