C++ 如何将链表c+中的第一个节点移动到列表的末尾+;

C++ 如何将链表c+中的第一个节点移动到列表的末尾+;,c++,data-structures,linked-list,C++,Data Structures,Linked List,我想把链表的第一个节点放到它的末尾, 但到目前为止我还不能 我的想法是创建一个包含第一个节点信息的新节点,然后删除第一个节点,然后将新节点添加到列表的末尾 这是我的代码,但它不起作用,因为我无法访问列表中的开始指针,因为它是私有的: Newnode-> = list.start->next->info; list.RemoveFront(); //a function to remove the first node. list.AddBack(Newnode); /

我想把链表的第一个节点放到它的末尾, 但到目前为止我还不能

我的想法是创建一个包含第一个节点信息的新节点,然后删除第一个节点,然后将新节点添加到列表的末尾

这是我的代码,但它不起作用,因为我无法访问列表中的开始指针,因为它是私有的:

Newnode-> = list.start->next->info;
list.RemoveFront();     //a function to remove the first node.
list.AddBack(Newnode);  //a function to add the element to the end of the list.
你是认真的吗

有两种情况:

  • 您的链接列表有一个指向最后一个链接的指针(非常有用)
  • 或者你没有
  • 如果没有指向最后一个节点的指针,请遍历列表并创建一个

    以下是操作:

  • Temp指向第一个节点
  • 将头更改为指向第二个节点
  • 将临时节点设置为指向nil或null
  • 使最后一个节点指向临时节点
  • 使尾部指针指向临时节点

  • 请把这个画出来。绘制链表时,链表总是更容易理解。

    您能显示编译器错误吗。还有更多的代码,
    Newnode->=…
    已经是无效语法。您的list类或list的node类没有获取前端节点值的方法吗?拉取数据、删除前面的节点,然后添加后面的节点的计划显然是可行的(假设所说的数据是可正确复制的,如果需要的话,遵循。但是您需要节点数据来实现这一点。只重新定位节点本身的列表方法显然也会起作用(并在过程中避免复制)@WhozCraig这实际上是我的问题..我不能访问第一个节点的数据,你能帮我找到一个访问它的方法吗。请原谅一个明显的问题,链接列表有什么可能的好处?谁的节点数据不能访问?你的列表应该有很多方法。获取前节点数据,后节点数据,一些第N个节点数据,po点击前面、后面、一些N'th等等。听起来你只是没有为你想要做的事情提供所需的功能,作为列表的公共界面。也许可以这样做。谢谢你的解释;但是,我想要的只是知道如何指向第一个节点,这样我就可以完成我没有做的所有其他步骤在我对链表实现的理解中,总是有一个指向第一个或头节点的指针。也许你有一个双链表并指向中间。如果没有指向第一个节点的指针,你的列表是如何工作的?