写出整体,回头边界检查,2个节点,1个节点,0个节点这次漏了
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
if(!pHead) return nullptr;
if(pHead->next==nullptr) return pHead;
if(pHead->next->next==nullptr){
ListNode* temp=pHead->next;
// pHead=pHead->next->next;
pHead->next->next=pHead //写反了
pHead->next==nullptr;
return temp;
}
ListNode* first=pHead;
ListNode* second=pHead->next;
ListNode* third=pHead->next->next;
while(second){
second->next=first;
first=second;
second=third; // 1->2->3->nullptr
if(third){
third=third->next;
}
}
pHead->next=nullptr;
return first;
}
};