https://leetcode.com/problems/reverse-linked-list/

리스트의 진행을 반대로 바꾼다. 세 개의 node 를 운용한다.

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(head == NULL || head->next == NULL) return head; 
        ListNode* prev = head;
        ListNode* cur = head->next;
        head->next = NULL;
        while(cur)
        {
            ListNode* temp = cur->next;
            cur->next = prev;
            prev = cur;
            cur = temp;
        }
        
        return prev;
    }
};