/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { if(pHead==nullptr||pHead->next==nullptr){ return pHead; } ListNode *r=pHead->next->next,*p=pHead->next,*h=pHead; pHead->next=nullptr; do{ p->next=h; h=p; p=r; if(p==nullptr){ break; } r=p->next; }while(p!=nullptr); return h; } };