/*

struct ListNode {

int val;

struct ListNode *next;

ListNode(int x) :

val(x), next(NULL) {

}

};*/

class Solution {

public:

ListNode* ReverseList(ListNode* pHead) {

if (pHead == NULL) return NULL;

ListNode* temp1 = pHead;

ListNode* temp2 = pHead->next;

while(temp2 != NULL)

{

ListNode* temp = temp2->next;

temp2->next = temp1;

temp1 = temp2;

temp2 = temp;

// cout << temp2->val;

}

pHead->next = NULL;

return temp1;

}

};