/**
* 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* pre=nullptr;//上一个节点
ListNode* cur=head;//当前节点
ListNode* newhead=nullptr;//新的头节点
while(cur!=nullptr){
ListNode* next=cur->next;//下一个节点
if(next==nullptr){
newhead=cur;//找到了新的头节点
}
cur->next=pre;//这句话写反了这么大影响
//pre=cur->next; 不能这么写 这样的话pre和next就成一个了
pre=cur;
cur=next;
}
return newhead;
}
};
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if (!head || !head->next) {
return head;
}
ListNode* newHead = reverseList(head->next);
head->next->next = head;
head->next = nullptr;
return newHead;
}
};
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/solution/fan-zhuan-lian-biao-by-leetcode-solution-jvs5/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。