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:
# 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]:
tail=ListNode(-1)
head=tail
current1=list1
current2=list2
while current1 and current2:
if current1.val<=current2.val:
tail.next=current1
current1=current1.next
else:
tail.next=current2
current2=current2.next
tail=tail.next
tail.next = current1 if current1 else current2
return head.next
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
1637. Widest Vertical Area Between Two Points Containing No Points (0) | 2022.12.30 |
---|---|
1874. Minimize Product Sum of Two Arrays (0) | 2022.12.30 |
917. Reverse Only Letters (0) | 2022.12.29 |
206. Reverse Linked List (0) | 2022.12.28 |
74. Search a 2D Matrix (0) | 2022.12.28 |