/* 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; } if (pHead->next == nullptr) { return pHead; } ListNode* newHead = pHead; // 节点头 ListNode* oldNext = nullptr; //存放下一个节点 ListNode* newNext = nullptr; //存放上一个节点 ListNode* loopNode = pHead; //遍历节点 while (loopNode != nullptr) { oldNext = loopNode->next; loopNode->next = newNext; if (oldNext == nullptr) { newHead = loopNode; } newNext = loopNode; // loopNode = loopNode->next->pre loopNode = oldNext; // loopNode = loopNode->next; } return newHead; } };