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; //返回最后一个数的位置 }