/*
reverse_list.c
auther:yejing
data:2014/10/21
ver :1.0
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct node_s{
int item;
struct node_s* next;
}node_t;
void show_list(node_t* list);
node_t* reverse_list(node_t* head){
if(!head)
return;
node_t* n = head;
head = NULL;
while(n){
node_t* m = n;
n = n->next;
m->next = head;
head = m;
}
printf(" -----reverseing list-----\n");
return head;
}
node_t* creat(int n)
{
node_t* phead = (node_t*)malloc(sizeof(node_t));
if(!phead)
return NULL;
int i;
node_t *p, *q;
p = phead;
phead->item = 1;
for(i = 0; i < n - 1; ++i)
{
q = (node_t *)malloc(sizeof(node_t));
if(!q)
return;
p->next = q;
q->item = i + 2;
p = q;
}
return phead;
}
void show_list(node_t* list)
{
if(!list)
return;
while(list){
printf(" item of listnode is: %d \n", list->item);
list = list->next;
}
return;
}
int main(int argc, char* argv[])
{
node_t* list = creat(5);
show_list(list);
list = reverse_list(list);
show_list(list);
return 1;
}
反转链表
最新推荐文章于 2021-05-21 06:15:11 发布