/*
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;
}
};