逆向单项链表的算法

Node* reverseList(Node *first)
{
    Node* currentPos,*nextPos,previousPos;

    previousPos=NULL;                     //从第一个数据first开始,前一个是NULL;
    currentPos=first;
    nextPos=first->next;
    while(nextPos!=NULL)                    //循环,知道最后一个数是末尾为止
    {
        currentPos->next=previousPos;        //将现在这个数的钩子解开钩在前一个数上
        previousPos=currentPos;              //三个数分别赋给前一个数,相当于把要循环的三个数整体向后移了一位,接着循环
        currentPos=nextPos;
        nextPos=nextPos->next;
    }
    currentPos->next=previous;                //把最后一个数的钩子解开钩在前一个数上
    return currentPos;                        //返回最后一个数的位置
}
原文地址:https://www.cnblogs.com/CClarence/p/5148234.html