# Merge Two Sorted List Program Solution

We at gradjobopenings.com provide free job alerts of freshers job drives. In this website we list on campus job openings for freshers and off campus job openings for freshers and also work from home job openings. This is the best website to apply for off campus drive in India. Visit our website for government job alerts and private job alerts. We also list free interview notes and study materials, one of the best interview study website.comfortable to face the interviews:

Problem Statement:

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.

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.
• Time: O(|list1| + |list2|))O(∣list1∣+∣list2∣))
• Space: O(|list1| + |list2|))O(∣list1∣+∣list2∣))

### Merge Two Sorted List Program Solution In C++

``````class Solution {
public:
ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
if (!list1 || !list2)
return list1 ? list1 : list2;
if (list1->val > list2->val)
swap(list1, list2);
list1->next = mergeTwoLists(list1->next, list2);
return list1;
}
};
``````

### Merge Two Sorted List Program Solution In Java

``````class Solution {
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
if (list1 == null || list2 == null)
return list1 == null ? list2 : list1;
if (list1.val > list2.val) {
ListNode temp = list1;
list1 = list2;
list2 = temp;
}
list1.next = mergeTwoLists(list1.next, list2);
return list1;
}
}
``````

### Merge Two Sorted List Program Solution In Python

``````class Solution:
def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
if not list1 or not list2:
return list1 if list1 else list2
if list1.val > list2.val:
list1, list2 = list2, list1
list1.next = self.mergeTwoLists(list1.next, list2)
return list1
``````
error: Content is protected !!