単一チェーンテーブル逆置き(cプログラミング)


//      ,    ,         

NODE * ReverseList( LIST Head )

{



    cout<< "        。。"<<endl;



    if ( Head == NULL || Head->next == NULL )

    {

        return Head;

    }



    NODE *p, *q, *r;

    p = Head->next;

    r = Head;    



    while( p->next != NULL )

    {

        q = p->next;

        p->next = r;

        r = p;

        p = q;

    }



    p->next = r;



    Head->next = NULL;



    return p;

}