HackerRank - Merge two sorted linked lists

Hacker Rank의 Merge two sorted linked lists 문제 풀이입니다.

문제:

2개의 Linked List가 주어졌을 때, 하나의 Linked List로 합치는 문제입니다.
단, 리스트는 소팅이 되어 있어야 합니다.

코드:

def mergeLists(head1, head2):
    n1 = head1
    n2 = head2
    result = SinglyLinkedList()
    
    while True:
        if n1 == None and n2 == None: 
            break
        elif n2 == None or (n1 is not None and n1.data < n2.data):
            result.insert_node(n1.data)
            n1 = n1.next
        else:
            result.insert_node(n2.data)
            n2 = n2.next
    
    return result.head

풀이:

두 리스트의 값들을 비교해주면서 작은 값들을 새로운 리스트에 넣어줬습니다.
리스트 끝에 도착하면 None 값이 나오기 때문에 이를 주의해서 풀어주어야 합니다.

주의사항:

  1. 리스트의 끝값이 None 값이 나온다. (None 값이 접근하면 런타임 에러가 뜬다)
  2. 리턴 값을 잘 확인하자. (링크드리스트 자체를 넘겨서 오류 찾는데 10분 넘게 걸렸다...)

좋은 웹페이지 즐겨찾기