/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { ListNode* pReverseList = NULL; ListNode* pNode = pHead; ListNode* pPre = NULL; while (pNode != NULL) { ListNode* pNext = pNode->next; if (pNext == NULL) { pReverseList = pNode; } // 让当前的结点不指向下一个而指向上一个 pNode->next = pPre; pPre = pNode; pNode = pNext; } return pReverseList; } };