姐姐,弄了一个双指针的链表给你#include <stdio.h>
#include <stdlib.h>
typedef struct LNODElist
{
int data;
struct LNODElist *next;
}St;
void reverselist(St **list);
void initlist(St **list);
void print(St *list);
int main(void)
{
St *l = NULL;//重点是这个,创建的变量是结构还是指针
initlist(&l);
print(l);
reverselist(&l);
print(l);
return 0;
}
void initlist(St **list)
{
int i;
St *pNew;
for(i = 10; i > 0; i--)
{
pNew = (St *)malloc(sizeof(St));
pNew->data = i;
printf("%d ", pNew->data);
pNew->next = *list;
*list = pNew;
}
printf("\n");
}
void reverselist(St **list)
{
St *prev = NULL, *curr = *list, *succ;
while( curr )
{
succ = curr->next;
curr->next = prev;
prev = curr;
curr = succ;
}
*list = prev;
}
void print(St *list)
{
St *temp = list;
while( temp )
{
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
}
|