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