/21. Merge Two Sorted Lists

21. Merge Two Sorted Lists

Easy
Linked Lists68% acceptance

Given the heads of two singly linked lists, each sorted in non-decreasing order, merge them into a single sorted linked list by rearranging their nodes. Return the head of the merged linked list.

Example 1

Input: head_a = ListNode(2, ListNode(5, ListNode(7))) head_b = ListNode(1, ListNode(3, ListNode(8)))

Output: [1,2,3,5,7,8]

Explanation: Merged list contains all elements from both lists in sorted order.

Example 2

Input: head_a = None head_b = ListNode(4, ListNode(6))

Output: [4,6]

Explanation: One list is empty; merged list is the other list.

Example 3

Input: head_a = ListNode(-2, ListNode(0)) head_b = ListNode(-3, ListNode(1))

Output: [-3,-2,0,1]

Explanation: Negative and positive values are merged in order.

Constraints

  • 0 <= number of nodes in head_a <= 50
  • 0 <= number of nodes in head_b <= 50
  • -100 <= node value <= 100
  • Both input lists are sorted in non-decreasing order
Python (current runtime)

Case 1

Input: head_a = ListNode(10) head_b = ListNode(5, ListNode(15))

Expected: [5,10,15]

Case 2

Input: head_a = None head_b = None

Expected: []

Case 3

Input: head_a = ListNode(-1, ListNode(0, ListNode(2))) head_b = ListNode(-2, ListNode(3))

Expected: [-2,-1,0,2,3]

Case 4

Input: head_a = ListNode(1, ListNode(2, ListNode(2))) head_b = ListNode(2, ListNode(2, ListNode(3)))

Expected: [1,2,2,2,2,3]