SDKD 软件18 链表(1)#函数题,编程题#

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;
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/YY666/p/11471304.html