Saturday, May 9, 2015

206. Reverse Linked List (easy)

Q:

Reverse a singly linked list.
Example:
Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL
Follow up:
A linked list can be reversed either iteratively or recursively. Could you implement both?

A:

/**
 * 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 oldPre(0);
        oldPre.next = head;
        
        ListNode newPre(0);
        while(oldPre.next)
        {
            auto tmp = oldPre.next;
            oldPre.next = tmp->next;
            
            tmp->next = newPre.next;
            newPre.next = tmp;
        }
        return newPre.next;
    }
};



**********Mistakes*************

ListNode *oldPre(0);  ---------> this grammar is WRONG

No comments:

Post a Comment