单链表逆置

typedef int DataType;
typedef struct node{
    DataType data;
    struct node* next;
}LinkedNode,*LinkList;

void ReverseList(LinkedNode* pCur,LinkList& ListHead)
{
    if(NULL == pCur || NULL == pCur->next)
    {
        ListHead = pCur;
    }
    else
    {
        LinkedNode* pNext = pCur->next;
        ReverseList(pNext,ListHead);
        pNext->next = pCur;
        pCur->next = NULL;
    }
}

LinkedNode* ReverseList(LinkedNode* pCur,LinkList& ListHead)
{
    if(NULL == pCur || NULL == pCur->next)
    {
        ListHead = pCur;
        return ListHead;
    }
    else
    {
        LinkedNode* pTemp = ReverseList(pCur->next,ListHead);
        pTemp->next = pCur;
        pCur->next = NULL;
        return pCur;
    }
}
View Code

 

posted on 2014-10-21 23:17  kangbry  阅读(100)  评论(0编辑  收藏  举报

导航