给定程序中,函数 fun 的功能是将不带头结点的单向链表逆置。即若原链表结点数据域依次为:2,4,6,8,10,逆置后,从头至尾结点数据域依次为10,8,6,4,2。
#include <stdio.h>
#include <stdlib.h>
#define N 5
typedef struct node
{
int data;
struct node *next;
} NODE;
void fun(NODE *h) {
NODE *p, *q, *r;
p = h->next;
if (p == NULL)
return;
q = p->next;
p->next = NULL;
while (q) {
r = q->next;
q->next = p;
p = q;
q = r;
}
h->next = p;
}
NO