[2021][01]Merge Two Sorted Lists
문제
문제 요약
오늘 문제 예제는 다음과 같다. 정렬된 리스트 2개가 주어질 때, 이를 병합한 리스트 반환하는 문제이다.
문제 접근
두 리스트를 left, right로 선언하고 반환할 새로운 리스트를 가리키는 노드를 head라고 선언한다.
left와 right가 모두 존재하는 동안(null 또는 None)이 아닌 동안에 left와 right의 값을 비교해 left의 값이 right의 값보다 작거나 같다면 head.next에 ListNode(left.val)을 지정하고, 그 밖의 경우에는 ListNode(right.val)을 지정한다.
left 또는 right가 null 또는 None인 경우에는 head.next에 None이 아닌 right 또는 left를 지정하면 병합 과정을 마칠 수 있다.
# 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: ListNode, l2: ListNode) -> ListNode:
left = l1
right = l2
head = ListNode()
ret = head
while left and right:
if left.val <= right.val:
head.next = ListNode(left.val)
left = left.next
else:
head.next = ListNode(right.val)
right = right.next
head = head.next
if not left:
head.next = right
if not right:
head.next = left
return ret.next
Author And Source
이 문제에 관하여([2021][01]Merge Two Sorted Lists), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@papayetoo/Merge-Two-Sorted-Lists저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)