#include <bits/stdc++.h>
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(nullptr) {
}
};
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
if (pHead == nullptr || pHead->next == nullptr)
{
return pHead;
}
ListNode* preNode = nullptr;
ListNode* curNode = pHead;
ListNode* nextNode = nullptr;
while (curNode)
{
nextNode = curNode->next;
curNode->next = preNode;
preNode = curNode;
curNode = nextNode;
}
return preNode;
}
};
package main
func ReverseList(pHead *ListNode) *ListNode {
if pHead == nil || pHead.Next == nil {
return pHead
}
var preNode *ListNode = nil
curNode := pHead
var nextNode *ListNode = nil
for curNode != nil{
nextNode = curNode.Next
curNode.Next = preNode
preNode = curNode
curNode = nextNode
}
return preNode
}