Leetcode: 206.Reverse List 反转链表

Reverse List 反转链表

反转一个单链表。


输入:

1->2->3->4->5->NULL

输出:

5->4->3->2->1->NULL

进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?


方法一:递归

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(!head||!head->next) return head;
        ListNode *newhead=reverseList(head->next);
        head->next->next=head;
        head->next=NULL;
        return newhead;
    }
};

方法二:迭代

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode *cur=head;
        while(cur&&cur->next){
            ListNode *newhead=cur->next;
            cur->next=cur->next->next;
            newhead->next=head;
            head=newhead;
        }
        return head;
    }
};

你可能感兴趣的:(Leetcode刷题记录)