미소를뿌리는감자의 코딩
[leetcode 2024/02/13] 21. Merge Two Sorted Lists 본문
728x90
https://leetcode.com/problems/merge-two-sorted-lists/description/
LeetCode - The World's Leading Online Programming Learning Platform
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
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 |