在课程

时间:2017-04-06 04:05:51

标签: c++ linked-list rotation

我通常可以使用像这样的函数来旋转列表 void rRotate(Node *head); 但是目前我正在将它实现到一个类节点{}中,它只会真正改变你访问头部的方式(使用这个关键字)。然而,无论我以哪种方式输入它对我有意义,我要么得到一个段错误,一个缺失的尾巴,或者只是头部。 截至目前,我当前的代码如下所示:

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;
}

目前的输出:

2 3 5    

我可能在当前状态下的函数中有一些错误,但是我尝试了很多不同的选项,似乎我错过了一些重要的东西..如果你能找到问题,生病就会回到你告诉你它是否有效,谢谢!

0 个答案:

没有答案