
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution(object):
def mergeTwoLists(self, list1, list2):
"""
:type list1: Optional[ListNode]
:type list2: Optional[ListNode]
:rtype: Optional[ListNode]
"""
if list1 is None:
return list2
if list2 is None :
return list1
head = None
if list1.val < list2.val :
head = list1
list1 = list1.next
else :
head = list2
list2 = list2.next
head.next = self.mergeTwoLists(list1, list2)
return head
재귀로 푸는게 더 깔끔한 문제
list1 과 list2를 가지고 있고, 그 다음 재귀함수에서는 이미 한번 popleft()한 친구를 가지고 mergeTwoLists 진행
'Algorithm > 기본 알고리즘' 카테고리의 다른 글
| boj-2164. 카드 2 (0) | 2023.01.19 |
|---|---|
| boj-11866. 요세푸스 문제 (0) | 2023.01.19 |
| [기본 알고리즘] Binary Search (0) | 2022.08.28 |
| 지도에서 상하좌우 움직이기 (0) | 2022.08.27 |
| leetcode 206. Reverse Linked List (0) | 2022.04.05 |