刚开始觉得特别简单qwq非常基础的反转链表。。然鹅实际上递归都出了问题。注意一下递归以后还是传入head,然后,只有一个的时候和null都需要特判
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { ListNode*temp=new ListNode(0); ListNode*pre=new ListNode(0); if(head==NULL) return NULL; if(head->next==NULL) return head; temp=head; while(temp->next!=NULL) { //cout<<temp->val<<endl; pre=temp; temp=temp->next; } //cout<<temp->val<<"here"<<endl; //cout<<pre->val<<"where"<<endl; pre->next=NULL; temp->next=reverseList(head); return temp; } };