6-1 带头结点的单链表就地逆置 (10 分)
思路
首先有两种特殊情况,空链表无法逆置,只有一个元素无需逆置
其他情况可统一为以下代码中的方法
将数据元素倒序连接,不断向前移动头结点
代码
void ListReverse_L(LinkList &L)
{
/*
cur:当前
nex:下一个
*/
LNode *nex, *cur = L->next;
if(cur && cur->next) //判断是否有第一个节点以及第二个节点
{
nex = L->next->next;//将头节点的后第二个节点取下
L->next->next = NULL;
while(nex)
{
cur = L->next;
L->next = nex;
nex = nex->next;
L->next->next = cur;
}
}
}