一.最常用的方法:
LNode* ReverseList(LNode* head)
{
if (head == NULL)
return NULL;
if (head->next == NULL)
return head;
LNode* pre = NULL;
LNode* Cur = head;
LNode* Nex = NULL;
while (Cur!=NULL)
{
Nex = Cur->next;
Cur->next = pre;
pre = Cur;
Cur = Nex;
}
return pre;
}
二.利用递归方法:
LNode* ReverList1(LNode* head)
{
if (head == NULL)
return NULL;
if (head->next == NULL)
{
return head;
}
LNode* Node = head; //保留上一个结点
LNode* Nex = head->next;
LNode* HeadNode = ReverList1(Nex);
Nex->next = Node; //逆置
Node->next = NULL; //这句必须有,否则会产生循环链表
return HeadNode;//返回逆置链表的尾结点
}