[leetcode] 21. Merge Two Sorted Lists
2022. 11. 11. 10:33ㆍ노트/Algorithm : 알고리즘
21. Merge Two Sorted Lists
You are given the heads of two sorted linked lists list1 and list2.
Merge the two lists in a one sorted list. The list should be made by splicing together the nodes of the first two lists.
Return the head of the merged linked list.
Example 1:
Input: list1 = [1,2,4], list2 = [1,3,4]
Output: [1,1,2,3,4,4]
Example 2:
Input: list1 = [], list2 = []
Output: []
Example 3:
Input: list1 = [], list2 = [0]
Output: [0]
Constraints:
- The number of nodes in both lists is in the range [0, 50].
- -100 <= Node.val <= 100
- Both list1 and list2 are sorted in non-decreasing order.
# 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 (not list1) or (list2 and list1.val > list2.val):
list1, list2 = list2, list1
if list1:
list1.next = self.mergeTwoLists(list1.next, list2)
return list1
'노트 > Algorithm : 알고리즘' 카테고리의 다른 글
[leetcode] 2. Add Two Numbers (0) | 2022.11.14 |
---|---|
[leetcode] 206. Reverse Linked List (0) | 2022.11.14 |
[leetcode] 234. Palindrome Linked List (0) | 2022.11.10 |
[leetcode] 238. Product of Array Except Self (0) | 2022.11.08 |
[leetcode] 121. Best Time to Buy and Sell Stock (0) | 2022.11.08 |