该函数实现了将单链表逆转:
eg:从1 3 4 5 2 变为 2 5 4 3 1
对于其中将rear指向下一个结点的语句:rear = rear->Next,我想知道为什么不能放在最后(就是代码中注释掉的地方),当我将该语句放在那里时就无法正确处理有多个结点的链表了,我想知道为什么
typedef int ElementType;
typedef struct Node *PtrToNode;
struct Node {
ElementType Data;
PtrToNode Next;
};
typedef PtrToNode List;
List Reverse( List L )
{
List front, rear;
rear = L;
L = NULL;
while(rear)
{
front = rear;
rear = rear->Next; //rear指向下一个结点
front->Next = L;
L = front;
//rear = rear->Next;
}
return L;
}