C++ 如何将一个链表内容复制到另一个链表

C++ 如何将一个链表内容复制到另一个链表,c++,linked-list,C++,Linked List,我得到了清单L1,L2。L1包含1,2,3,L2包含4,5,6。如何将内容从L2复制到L1的末尾,以便L1包含1,2,3,4,5,6。有什么建议吗?如果是链表,那么列表中的每个节点都应该有一个指向列表中下一项的指针。列表中的最后一个节点应该指向null(或者以其他方式表示您在列表的末尾)。要将L2的内容复制到L1的末尾,只需将L1的最后一项的下一个节点指针设置为L2的第一项。不知道任何关于实际实现的更多信息,我建议执行以下操作: L1.尾部=L2.头部 这将把两个列表链接在一起,您现在可以扔掉对

我得到了清单L1,L2。L1包含1,2,3,L2包含4,5,6。如何将内容从L2复制到L1的末尾,以便L1包含1,2,3,4,5,6。有什么建议吗?

如果是链表,那么列表中的每个节点都应该有一个指向列表中下一项的指针。列表中的最后一个节点应该指向null(或者以其他方式表示您在列表的末尾)。要将L2的内容复制到L1的末尾,只需将L1的最后一项的下一个节点指针设置为L2的第一项。

不知道任何关于实际实现的更多信息,我建议执行以下操作:

L1.尾部=L2.头部


这将把两个列表链接在一起,您现在可以扔掉对L2的引用。

因为这是一个家庭作业问题,我不能给您实际的代码。但这是一个很容易解决的问题

基本上,您只需要将L2的内容附加到L1的末尾。正如您所知,每个链表都有一个头指针和一个尾指针。附加到列表时,意味着将新节点附加到尾部指针,然后向前移动尾部指针。因此,您只需要将L2的头指针附加到L1的尾指针,并将L1的尾指针移动到列表的末尾


另外,如果list类有一个内部大小变量来计算元素的数量,请不要忘记更新列表的大小。

之后L2会发生什么?如果L2将在以后的程序中使用和更改,那么您几乎肯定不希望将L1.tail更改为指向L2.head


为什么不从L2的头到尾循环并将值推送到L1中呢?(如果您想要具体的实现细节,您需要告诉我们您使用的是哪个链接列表,或者如果您编写了代码,请将代码发布到您的链接列表中)。

您评论说这不是家庭作业,即使它被标记为家庭作业。我相信你的话

使用C++ STL列表,只需要插入方法和迭代器。

list<int> L1;
list<int> L2;

// let's just assume that L1 and L2 are initialized in the manner you described

// after this, L1 will contain 1,2,3,4,5,6
L1.insert(L1.end(), L2.begin(), L2.end());
列表L1;
列表L2;
//让我们假设L1和L2以您描述的方式初始化
//在此之后,L1将包含1,2,3,4,5,6
L1.insert(L1.end(),L2.begin(),L2.end());

我们需要更多的细节才能回答这个问题。您是自己编写链表类还是使用现有的链表类?如果是现有的,哪一个?这真的不是一个特定于visual studio的问题。这听起来像是家庭作业……而且,这闻起来像家庭作业。浅拷贝?深度复制?