将无头结点链表逆置函数(C语言)
List Reverse(List head)
{
List FirstPtr = NULL, SecPtr = NULL, TempPtr = NULL;
//链表为空,直接返回头指针
if (head == NULL)
{
return head;
}
//链表只有一个结点,直接返回头指针
else if (head->Next == NULL)
{
return head;
}
//链表有两个以上结点
else
{
FirstPtr = head;
SecPtr = head->Next;
head->Next = NULL;//将第一个结点指针置空
while (SecPtr)
{
TempPtr = SecPtr->Next;
SecPtr->Next = FirstPtr;
FirstPtr = SecPtr;
SecPtr = TempPtr;
}
head = FirstPtr;//头指针指向最后一个结点
return head;
}
}