NodeLinkList_reverse(Nodehead)

{
    Node *preNode,*curNode,*nextNode;
 
    if(head==NULLreturn NULL;//空链表
 
    if(head->next == NULLreturn head;//仅一个元素
 
    curNode = head;preNode=NULL;//初始化
 
    while(curNode)
    {
        nextNode = curNode->next;//先记录下一个结点
        curNode->next = preNode;//改变链表方向(逆置)
        preNode = curNode;//将当前结点作为下一次循环的前一个结点
        curNode = nextNode;//向后推移一个结点
    }
 
    return preNode;//当遍历完链表后curNode应该为空,此时preNode就是逆置后链表头(head)
 
}