将带有头结点链表“就地”逆置,其中“就地”指的是辅助控件的复杂度为O(1)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33883389/article/details/81350108
//将链表就地逆序
LinkList Reverse_1(LinkList L)
{
    /*基本思想是采用头插法来实现链表的逆序,这样控件复杂度就降为O(1)了*/
    NODE *p,*r; //p为工作指针,r为的后继(防止断链)

    p = L->next;//从第一个结点开始
    p->
    L->next = NULL;
    while(p != NULL)
    {
        r = p->next;
        p->next = L->next;//第一次L指向空,所以其实第一次自身也是置为空
        L->next = p;
        p= r;
    }
    return L;
}

猜你喜欢

转载自blog.csdn.net/qq_33883389/article/details/81350108
今日推荐