本题要求实现一个函数,将给定的单链表逆转。
其中List结构定义如下:
typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; typedef PtrToNode List; /* 定义单链表类型 */L是给定单链表,函数Reverse是要返回被逆转后的链表。
函数体代码如下:
List Reverse( List L ){ //初始时先让p指向NULL List p=NULL; // 定义一个临时指针 List q=L; while(q){ //临时指针每次循环指向下一个元素 q=q->Next; //将L的第一个元素从L中拿出,并指向p L->Next=p; //将p指向前面一个,让下一次拿来的元素能加到链表头 p=L; //将临时指针赋给L,使得L中的各个节点数据依次取出 L=q; } return p; }