거누의 개발노트

파이썬 알고리즘 - 두 정렬 리스트의 병합 (*) 본문

코딩테스트

파이썬 알고리즘 - 두 정렬 리스트의 병합 (*)

Gogozzi 2022. 5. 15. 14:30
반응형

문제

정렬되어 있는 두 연결 리스트를 합쳐라

 

입력

1->2->4
1->3->4

출력

1->1->2->3->4->4

책에 있는 코드

class solution:
    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
        if (not l1) or (l2 and l1.val > l2.val):
            l1, l2 = l2, l1
        if l1:
            l1.next = self.mergeTwoLists(l1.next, l2)
        return l1

 

 

찾은 코드

# 이해하기 쉬운 풀이
def mergeTwoLists(list1, list2):
    if (list1 == None and list2 == None): return None
    head = result = ListNode()

    while (list1 or list2):
        if (list1 == None):
            result.val = list2.val
            result.next = list2.next
            break
        if (list2 == None):
            result.val = list1.val
            result.next = list1.next
            break
        else:
            if (list1.val <= list2.val):
                result.val = list1.val
                result.next = ListNode()
                result = result.next
                list1 = list1.next
            else:
                result.val = list2.val
                result.next = ListNode()
                result = result.next
                list2 = list2.next

    return head

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

 

Merge Two Sorted Lists - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

회고

다시 풀어보기!

잘 이해가 안된다.

반응형
Comments