现有一个链表(可能有环)
现在要把它逆序输出出来,可能存在链表循环,这个是要注意的地方
以下代码模拟一个循环链表的逆序操作。
思路是,还是按照单链表的逆序思路来进行,只不过每一次循环,都需要判断,未逆序节点是否指向已逆序的节点,如果是,break,如果不是,则继续。
#include <iostream>
using namespace std;
struct Node
{
int value;
Node* next;
};
int main(void)
{
Node* node1 = new Node;
node1->value = 1;
Node* node2 = new Node;
node2->value = 2;
Node* node3 = new Node;
node3->value = 3;
Node* node4 = new Node;
node4->value = 4;
Node* node5 = new Node;
node5->value = 5;
Node* node6 = new Node;
node6->value = 6;
node1->next = node2;
node2->next = node3;
node3->next = node4;
node4->next = node5;
node5->next = node6;
node6->next = NULL;
node6->next = node3;
/*
ptr-