版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/peng_apple/article/details/79614846
链表的创建查看
逆序思想:
1、链表为空时:不需要逆序;2、链表只有一个节点时:不需要逆序;
3、链表的节点为两个以及两个以上时:需要逆序
结构体节点:
typedef struct student {
int num; //学号
int score; //分数
char name[20];
struct student *next;//指针域
}STU;
demo:
STU *link_reversed_order(STU *p_head)
{
STU *pf = NULL, *pb = NULL, *tmp = NULL;
pf = p_head;
if(p_head == NULL) {
printf("链表为空,不需要逆序!\n");
return p_head;
} else if(p_head->next == NULL) {
printf("链表只有一个节点,不需要逆序!\n");
return p_head;
} else {
pb = pf->next;
p_head->next = NULL;
while(pb != NULL)
{
tmp = pb;
pb = pb->next;
tmp->next = pf;
pf = tmp;
}
p_head = pf;
return p_head;
}
}