HelloCho

[Python] #21. Merge Two Sorted Lists(Easy) 본문

코테/LeetCode

[Python] #21. Merge Two Sorted Lists(Easy)

choo2969 2020. 9. 6. 02:42

문제

이 문제는 두 개의 정렬된 Linked List가 주어질 때, 두 Linked List를 합쳐 정렬된 Linked List로 return 하는 문제이다. 

단순하게 두개의 Linked list의 값을 하나씩 비교하며 Linked List로 만들어줬다. 

# Definition for singly-linked list.
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
class Solution:
    def mergeTwoLists(self, l1,l2):
        l3 = None
        l3_ = None
        while l1 and l2:
            n = None
            if l1.val < l2.val:
                n = l1
                l1 = l1.next
            else:
                n = l2
                l2 = l2.next
            if l3_ == None:
                l3_ = ListNode(n.val)
                l3 = l3_
            else:
                l3_.next = ListNode(n.val)
                l3_ =l3_.next
        if l1 :
            if l3_:
                l3_.next = l1
            else:
                l3 = l1
        else:
            if l3_:
                l3_.next = l2
            else:
                l3 = l2
                
        return l3

while 문을 통해 l1과 l2 두 개의 Linked list의 값이 존재할 때 반복을 한다. 

if 문을 통해서 값을 비교해서 값을 넣어줬다. 

while문이 끝난 이후에 혹시 남아있는 Linked list가 있을 수 있으니 나머지 값들을 추가해줬다. (sorted linked list라 편하게 남은 값을 추가해주면 된다)

결과는 아래와 같다.

속도는 44ms, 메모리는 13.7mb로 통과했다! 

Comments