#include<stdio.h>
#include<stdlib.h>
#define ERROR
#define OK
typedef struct node
{
int data;
struct node* next;
}*PNODE, NODE;
PNODE header;
//PNODE ender;
PNODE p1;
PNODE header1;
PNODE create()
{
header = new node;
header->next = NULL;
PNODE q = header;
int n;
scanf_s("%d", &n);
while (n--)
{
int a;
scanf_s("%d", &a);
PNODE p = new node;
p->data = a;
// p->next = header->next;
p->next = NULL;
q->next = p;
q = p;
}
return header;
}
void inverse(PNODE header)
{
PNODE header1 = new node;
header1 = new node;
header1->next = NULL;
PNODE p1 = new node;
p1 = new node;
p1->next = NULL;
PNODE p2 = header;
header1 = header;
header = header->next;
header1->next = NULL;
while (header!= NULL)
{
p1 = header;
header = header->next;
p1->next = header1->next;
header1->next = p1;
}
return ;
}
void show(PNODE header)
{
header = header->next;
while (header)
{
if (header->next == NULL)
{
printf("%d ", header->data);
break;
}
else
printf("%d ", header->data);
header = header->next;
}
}
//void show(PNODE header1)
//{
// header1 = header1->next;
//
// while (header1)
// {
// if (header1->next == NULL)
// {
// printf("%d ", header1->data);
// break;
// }
// else
// printf("%d ", header1->data);
// header1 = header1->next;
// }
//
//}
int main() {
PNODE p = create();
inverse(header);
show(header);
printf("\n");
return 0;
}
链表的逆置(复杂版本的)
最新推荐文章于 2024-07-24 23:21:08 发布