总是有些笔试会碰到
#include<stdio.h>
#include<stdlib.h>
#define n 5
typedef struct node{
int num;
struct node* next;
}*nodelist,node;
int a[n];
nodelist create(int m,int *a)
{
nodelist L;
nodelist head;
int i=0;
head = (node *)malloc(sizeof(int));
head->num=0;
L=head;
for(i=0; i<n; i++)
{
L->next = (node *)malloc(sizeof(int));
L = L->next;
L->num = a[i];
}
L->next = NULL;
return head;
}
void show(nodelist head)
{
nodelist L=head;
while(L != NULL)
{
printf("%d",L->num);
L=L->next;
}
printf("\n");
}
//单链表反转
nodelist reverse(nodelist head)
{
nodelist L=head;
nodelist pre=NULL;
nodelist pafter=NULL;
do{
pafter = L->next;
L->next = pre;
pre = L;
L = pafter;
}while(L != NULL);
return pre;
}
int main()
{
nodelist list;
list = (node *)malloc(sizeof(int));
int i,a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
list = create(n,a);
show(list);
list = reverse(list);
show(list);
return 0;
}