本题要求实现一个函数,将给定的单链表逆转。
函数接口定义:
List Reverse( List L );
其中List
结构定义如下:
typedef struct Node *PtrToNode;
struct Node {
ElementType Data; /* 存储结点数据 */
PtrToNode Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */
L
是给定单链表,函数Reverse
要返回被逆转后的链表。
实现:
List Reverse( List L )
{
List pre = NULL, now = NULL;
if (L == NULL)
return L;
pre = L, now = L->Next, pre->Next = NULL;
while (now != NULL) {
List tmp = now->Next;
now->Next = pre;
pre = now;
now = tmp;
}
return pre;
}