在一个list中,我们先让头结点的next域指向结点2,再让结点1的next域指向结点3,最后将结点2的next域指向结点1,
就完成了第一次交换,顺序就变成了Header-结点2-结点1-结点3-结点4-NULL
就完成了第一次交换,顺序就变成了Header-结点2-结点1-结点3-结点4-NULL
typedef struct _list_t{
struct _list_t *next;
int data;
}list;
void reverse_list(list *head)
{
list *prev = head, *cur = head->next, *next = NULL;
if (NULL == head || NULL == head->next)
{
return ;
}
while (cur)
{
next = cur->next;
cur->next = prev;
prev = cur;
cur = next;
}
head->next = NULL;
head = prev;
}