mirror of
https://github.com/prdlk/leetcode.git
synced 2026-09-17 07:26:27 +00:00
feat(work): add solution for LeetCode 21 Merge Two Sorted Lists
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
"""
|
||||
21. Merge Two Sorted Lists
|
||||
Difficulty: Easy
|
||||
https://leetcode.com/problems/merge-two-sorted-lists/
|
||||
|
||||
──────────────────────────────────────────────────
|
||||
|
||||
You are given the heads of two sorted linked lists list1 and list2.
|
||||
|
||||
Merge the two lists into 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]:
|
||||
|
||||
if not list1:
|
||||
return list2
|
||||
if not list2:
|
||||
return list1
|
||||
|
||||
if list1.val < list2.val:
|
||||
head = list1
|
||||
list1 = list1.next
|
||||
else:
|
||||
head = list2
|
||||
list2 = list2.next
|
||||
|
||||
current = head
|
||||
while list1 and list2:
|
||||
if list1.val < list2.val:
|
||||
current.next = list1
|
||||
list1 = list1.next
|
||||
else:
|
||||
current.next = list2
|
||||
list2 = list2.next
|
||||
current = current.next
|
||||
|
||||
current.next = list1 or list2
|
||||
return head
|
||||
Reference in New Issue
Block a user