Leetcode#24. 두 개의 교환 체인 테이블의 노드

  • 사고방식 1: 비귀속, 새로운 노드의 도움을 빌린다
  • 사고방식 2: 귀속
  • // 
    
    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* swapPairs(ListNode* head) 
        {
            if(head == NULL || head->next == NULL)
                return head;
            ListNode* dummy = new ListNode(-1);
            ListNode* pre = dummy;
            dummy->next = head;
            while(pre->next && pre->next->next)
            {
                ListNode* current = pre->next->next;
                pre->next->next = current->next;
                current->next = pre->next;
                pre->next = current;
                pre = current->next;
            }
            return dummy->next;
        }
    };
    // 
    class Solution {
    public:
        ListNode* swapPairs(ListNode* head) 
        {
            if(head == NULL || head->next == NULL)
                return head;
            ListNode* temp = head->next;
            head->next = swapPairs(temp->next);
            temp->next = head;
            return temp;
        }
    };

    좋은 웹페이지 즐겨찾기