ltx_zero

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

刚开始觉得特别简单qwq非常基础的反转链表。。然鹅实际上递归都出了问题。注意一下递归以后还是传入head,然后,只有一个的时候和null都需要特判

/**
 * 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;
    }
};
View Code

 

posted on 2019-07-13 22:32  ltx_zero  阅读(142)  评论(0编辑  收藏  举报