递归 Node* reverse(Node* pHead) { if (pHead->pNext == NULL) { return pHead; } Node* pTmp = pHead->pNext; Node* pNewHead = reverse(pHead->pNext); pTmp->pNext = pHead; pHead->pNext = NULL; return pNewHead; } 非递归 List* Reverse(List* h) { List *p,*q,*r; p=NULL; q=h->next; while(q) { r=q->next; q->next=p; p=q; q=r; } h->next=q; return h; }