题解 | #反转链表#
反转链表
http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
代码
/*
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 *p1=NULL;
ListNode *p2=pHead;
ListNode *p3=pHead->next;
//2指向1,然后走下去
while(p2!=NULL){
p2->next=p1;
p1=p2;
p2=p3;
if(p3!=NULL){
p3=p3->next;
}
}
return p1;
}
};
图示

