我通常可以使用像这样的函数来旋转列表
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
我可能在当前状态下的函数中有一些错误,但是我尝试了很多不同的选项,似乎我错过了一些重要的东西..如果你能找到问题,生病就会回到你告诉你它是否有效,谢谢!