미소를뿌리는감자의 코딩
[leetcode 2024/02/13] 21. Merge Two Sorted Lists 본문
728x90
https://leetcode.com/problems/merge-two-sorted-lists/description/
1. 접근 방법
이번 문제는 2개의 linked list를 오름차순으로 merge해서 출력하는 것이 목표이다.
node = ListNode(0)
을 통해 시작 노드를 설정해주었다.
이후 list1.val < list2.val 을 비교해서, 해당 syntax가 True 라면 node.next = list1으로 해주었다. else는 node.next = list2를 해주었다.
==을 고려해주지 않은 이유는 어짜피, 둘 중 하나 값을 넣으면 되기 때문이다. list1 노드의 1 을 먼저 넣든, list2 노드의 1을 먼저 넣든 상관이 없기 때문이다. 같은 1 이기 때문이다.
이후 list1 또는 list2 둘 중 하나가 None을 가리키게 된다면, 반복문을 멈추고, 남은 list 노드들을 node linked list 뒤에 붙여주었다.
node.next = list1 if list1 else list2
-> 이렇게 붙여주었다.
2. 코드
# 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, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
node = ListNode(0)
head = node
while list1 and list2:
if list1.val < list2.val:
node.next = list1
list1 = list1.next
else:
node.next = list2
list2 = list2.next
node = node.next
node.next = list1 if list1 else list2
return head.next
728x90
'코딩 테스트 > leetcode' 카테고리의 다른 글
[leetcode 2024/02/15] 17. Letter Combinations of a Phone Number (1) | 2024.02.15 |
---|---|
[leetcode 2024/02/13] 328. Odd Even Linked List (0) | 2024.02.13 |
[leetcode 2024/02/13] 206. Reverse Linked List (0) | 2024.02.13 |
[leetcode 2024/02/08] 215. Kth Largest Element in an Array (0) | 2024.02.08 |
[leetcode 2024/02/08] 1337. The K Weakest Rows in a Matrix (0) | 2024.02.08 |