首先,这是链接列表和递归练习的一部分。我试图创建一个复制构造函数,以递归方式深度复制给定的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);
}
}
copied list - output correct while copying but print method fails?
复制列表的ListLength是正确的但没有输出??