之前做过的题目,三个指针配合完成反转链表,回忆+写一共用了不到15分钟。
/*
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* pPre, * pLast, * pTemp;
pPre = pHead;
pLast = pPre->next;
pTemp = pLast;
while(pLast != NULL){
pTemp = pLast->next;
pLast->next = pPre;
pPre = pLast;
pLast = pTemp;
}
pHead->next = NULL;
return pPre;
}
};