파비의 매일매일 공부기록

2023.03.12 Today's Challenge 본문

Problem Solving/LeetCode

2023.03.12 Today's Challenge

fabichoi 2023. 3. 12. 23:45

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

 

Merge k Sorted Lists - LeetCode

Can you solve this real interview question? Merge k Sorted Lists - You are given an array of k linked-lists lists, each linked-list is sorted in ascending order. Merge all the linked-lists into one sorted linked-list and return it.   Example 1: Input: lis

leetcode.com

머지머지 머지하는 소트소트소트

class Solution:
    def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:
        if not lists:
            return None
        if len(lists) == 1:
            return lists[0]

        mid = len(lists) // 2
        left = self.mergeKLists(lists[:mid])
        right = self.mergeKLists(lists[mid:])

        return self.merge(left, right)

    def merge(self, l1, l2):
        dummy = ListNode(0)
        curr = dummy

        while l1 and l2:
            if l1.val < l2.val:
                curr.next = l1
                l1 = l1.next
            else:
                curr.next = l2
                l2 = l2.next
            curr = curr.next

        curr.next = l1 or l2
        return dummy.next
반응형

'Problem Solving > LeetCode' 카테고리의 다른 글

2023.03.14 Today's Challenge  (0) 2023.03.14
2023.03.13 Today's Challenge  (0) 2023.03.13
2023.03.11 Today's Challenge  (0) 2023.03.11
2023.03.10 Today's Challenge  (0) 2023.03.10
2023.03.09 Today's Challenge  (0) 2023.03.09
Comments