Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在类中顺时针旋转链表_C++_Linked List_Rotation - Fatal编程技术网

C++ 在类中顺时针旋转链表

C++ 在类中顺时针旋转链表,c++,linked-list,rotation,C++,Linked List,Rotation,我通常可以使用如下函数旋转列表 void rRotate(节点*头部) 然而,目前我正在将它实现到一个类节点{},它只会真正改变您访问头部的方式(使用这个关键字)。然而,无论我以何种方式输入,对我来说都是有意义的,要么是seg故障,要么是缺少尾巴,要么只是头部。 到目前为止,我的当前代码如下所示: Node *Node::rRotate(){ Node *iterator = this; while(iterator->next->next!=NULL) iterat

我通常可以使用如下函数旋转列表
void rRotate(节点*头部)
然而,目前我正在将它实现到一个类节点{},它只会真正改变您访问头部的方式(使用这个关键字)。然而,无论我以何种方式输入,对我来说都是有意义的,要么是seg故障,要么是缺少尾巴,要么只是头部。
到目前为止,我的当前代码如下所示:

Node *Node::rRotate(){
    Node *iterator = this;
    while(iterator->next->next!=NULL) iterator=iterator->next;
      iterator->next->next=this;
      Node *newHead = iterator->next;
      iterator->next=NULL;
      return newHead;
}
以及我的实现

int main() {

  Node *head = new Node(2);
  head->add(3);
  head->add(5);
  head->add(7);
  head->Node::rRotate();
  head->print();
  std::cout << std::endl;
}

在当前状态下,我可能会在函数中出现一些错误,但我尝试了太多不同的选项,似乎遗漏了一些主要内容。。如果你能找到问题,我会回复你,让你知道它是否有效,谢谢

想想看,
while(迭代器->下一步->下一步!=NULL)
,如果
迭代器->下一步==NULL
,而您是从NULL访问下一步,您需要处理这种情况。迭代器->下一步=NULL如果在->下一步->下一步=NULL时停止,它怎么可能会停止?编辑:实际上我明白你的意思,我会修正当链表的大小为0或1时,我发现这不是你代码的问题。
2 3 5