#include <stdio.h>
#include <string.h>
#include<stdlib.h>
struct Node
{
int data;
Node* next;
};
Node head={0};
void Reverse(Node* head)
{
Node* N1=head->next;
Node* p1=head;
Node* p2=head->next;
while(p2)
{
//备份p3->next
Node* p3=p2->next;
//反向
p2->next=p1;
//下一轮
p1=p2;
p2=p3;
}
head->next=p1;
if(N1)N1->next=NULL;
}
//添加一个节点
void AddNode(Node* head,int data)
{
Node* pNode=(Node*)malloc(sizeof(Node));
pNode->data=data;
pNode->next=head->next;
head->next =pNode;
}
int main()
{
AddNode(&head,1);
AddNode(&head,2);
AddNode(&head,3);
AddNode(&head,4);
Reverse(&head);
return 0;
}
链表的逆序排列
最新推荐文章于 2021-05-21 11:42:06 发布