要求:就是建一个带一个头结点的链表,然后将链表逆置就可以。
。。主要就是讲插入方式变一下就可以。。
代码:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<map> #include<vector> #include<cmath> #include<string> #include<queue> #define eps 1e-9 #define ll long long #define INF 0x3f3f3f3f using namespace std; struct node { int data; struct node *next; }; void Readout(struct node * head) { printf("链表为: "); struct node *p; p=head->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } printf(" "); } void Readin(struct node* head) { int val; struct node *p,*ly,*q; p=head->next; head->next=NULL; ly=head; printf("请输入元素: "); for(int i=1;i<=5;i++) { scanf("%d",&val); p=(struct node *)malloc(sizeof(struct node)); p->data=val; p->next=NULL; ly->next=p; ly=p; } } void Reverage(struct node *head) { struct node *p,*q; p=head->next; head->next=NULL; while(p!=NULL) { q=p; p=p->next; q->next=head->next; head->next=q; } } int main() { struct node *head; head=(struct node *)malloc(sizeof(struct node)); Readin(head); Readout(head); Reverage(head); Readout(head); return 0; } /* 1 2 3 4 5 */