Leetcode/NeetCode

[LinkedList][Easy] 21. Merge Two Sorted Lists

자전거통학 2024. 7. 15. 21:44

https://leetcode.com/problems/merge-two-sorted-lists/description/ 

 

두 개의 정렬된 list가 두어질 때 이 두 리스트를 merge 하라.

 

 

딱히 어려운 부분이 없다.

직관대로 한다.

 

코드 .

ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) 
{
    ListNode* head = nullptr;

    ListNode* node1 = list1;
    ListNode* node2 = list2;
    ListNode* node = nullptr;
    ListNode* prev = nullptr;
    while (node1 != nullptr || node2 != nullptr)
    {
        if (node1 != nullptr && node2 != nullptr)
        {
            if(node1->val < node2->val)
            {
                node = node1;
                node1 = node1 != nullptr ? node1->next : node1;
            }
            else 
            {
                node = node2;
                node2 = node2 != nullptr ? node2->next : node2;
            }
        }
        else if (node1 != nullptr)
        {
            node = node1;
            node1 = node1 != nullptr ? node1->next : node1;
        }
        else
        {
            node = node2;
            node2 = node2 != nullptr ? node2->next : node2;
        }

        if(prev != nullptr)
            prev->next = node;

        prev = node;
        if (head == nullptr)
            head = node;
    }
    return head;
}

 

 

결과