From b7041b1440600433d058c1f2081f1ca018026ea0 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Mon, 31 Aug 2026 11:45:48 -0400 Subject: [PATCH] docs(linked-list): add Merge Two Sorted Lists documentation page --- .../21-merge-two-sorted-lists.mdx | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 apps/docs/content/(linked-list)/21-merge-two-sorted-lists.mdx diff --git a/apps/docs/content/(linked-list)/21-merge-two-sorted-lists.mdx b/apps/docs/content/(linked-list)/21-merge-two-sorted-lists.mdx new file mode 100644 index 0000000..24f2fbb --- /dev/null +++ b/apps/docs/content/(linked-list)/21-merge-two-sorted-lists.mdx @@ -0,0 +1,66 @@ +--- +title: '21. Merge Two Sorted Lists' +description: You are given the heads of two sorted linked lists list1 and list2 +sidebar: + label: 'Merge Two Sorted Lists' + badge: 'Easy' +--- + +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. + +## Solution + +```py +# 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 +```