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