方法:使用p和q两个指针配合,使得两个节点的指向反向。
再循环p=q;q=r;r=q->next;
代码如下:
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
if(pHead==NULL||pHead->next==NULL)
return pHead;
ListNode* p=NULL;
ListNode* q=NULL;
ListNode* r=NULL;
p=pHead;
q=pHead->next;
pHead->next=NULL;
while(q)
{
r=q->next;
q->next=p;
p=q;
q=r;
}
pHead=p;
return pHead;
}
};