单链表逆置(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;
}

 

posted @ 2012-07-10 17:43  zhice163  阅读(206)  评论(0编辑  收藏  举报