#include <iostream>
using namespace std;
typedef struct LinkNode
{
int data;
LinkNode *next;
} *Node;
Node linkReverse(Node head)
{
Node ptr = NULL;
Node previous = NULL;
while (head->next)
{
ptr = head->next;
head->next = ptr->next;
ptr->next = previous;
previous = ptr;
}
head->next = previous;
return head;
}
void main()
{
Node head = new LinkNode();
head->next = NULL;
Node p = new LinkNode();
p->data = 1;
p->next = head->next;
head->next = p;
p = new LinkNode();
p->data = 2;
p->next = head->next;
head->next = p;
p = new LinkNode();
p->data = 3;
p->next = head->next;
head->next = p;
cout << "原始链表:";
Node temp = head;
while (temp->next)
{
cout << temp->next->data <<" ";
temp = temp->next;
}
cout << endl;
cout << "反转后的链表:";
Node tmp = linkReverse(head);
while (tmp->next)
{
cout << tmp->next->data <<" ";
tmp = tmp->next;
}
cout << endl;
}
链表逆序
最新推荐文章于 2024-11-15 16:10:22 发布