题解 | #反转链表#
反转链表
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 == nullptr) return pHead;
ListNode* pre, *cur;
pre = pHead, cur = pHead -> next;
while (cur != nullptr){
ListNode* tmp = cur -> next;//tmp用来保存原序列的下一个结点
if (pre == pHead) pre -> next = nullptr;//及时将头结点next指向空防止循环链表
cur -> next = pre;
pre = cur;
cur = tmp;
}
return pre;
}
};