320x100
https://leetcode.com/problems/merge-two-sorted-lists/
2개의 정수 목록이 주어졌을 때, 두 리스트를 오름차순대로 합친 목록을 만들어 반환하는 문제다.
별달리 고려할만한 case는 없었던 것 같다.
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* addNode(ListNode* head, ListNode* node) {
head->next = node;
return head->next;
}
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if (!l1 && !l2)
return nullptr;
if (l1 && !l2)
return l1;
if (!l1 && l2)
return l2;
ListNode* ret = new ListNode(0);
ListNode* iter = ret;
while(l1 || l2)
{
if (l1 && l2)
{
iter = addNode(iter, l1->val > l2->val ? l2 : l1);
l1->val > l2->val ? l2 = l2->next : l1 = l1->next;
}
else if (l1 && !l2)
{
iter = addNode(iter, l1);
l1 = l1->next;
}
else if (!l1 && l2)
{
iter = addNode(iter, l2);
l2 = l2->next;
}
}
return ret->next;
}
};
320x100
'코딩테스트 준비 > leetcode' 카테고리의 다른 글
40. Combination Sum II (0) | 2021.11.09 |
---|---|
39. Combination Sum (0) | 2021.11.07 |
20. Valid Parentheses (0) | 2021.09.21 |
90. Subsets II (0) | 2021.09.01 |
82. Remove Duplicates from Sorted List II (0) | 2021.08.29 |