/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { if (pHead == nullptr) { return nullptr; } ListNode* nhead = new ListNode(0); ListNode* pre = pHead; while (pHead) { pHead = pHead->next; pre->next = nhead->next; nhead->next = pre; pre = pHead; } return nhead->next; } };