LeetCode 21. Merge Two Sorted Lists
Linked List
Merge two sorted linked lists and return it as a sorted list. The list should be made by splicing together the nodes of the first two lists.
Example 1:
Input: l1 = [1,2,4], l2 = [1,3,4]
Output: [1,1,2,3,4,4]
Example 2:
Input: l1 = [], l2 = []
Output: []
Example 3:
Input: l1 = [], l2 = [0]
Output: [0]
Constraints:
The number of nodes in both lists is in the range
[0, 50]
.-100 <= Node.val <= 100
Both
l1
andl2
are sorted in non-decreasing order.
Solution:
class Solution {
public:
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {
ListNode *head = new ListNode(-1);
ListNode *fake_head = head;
while (l1 != nullptr || l2 != nullptr) {
if (l1 == nullptr) {
head->next = l2;
break;
} else if(l2 == nullptr) {
head->next = l1;
break;
}
if (l1->val <= l2->val) {
head->next = l1;
head = l1;
l1 = l1->next;
} else {
head->next = l2;
head = l2;
l2 = l2->next;
}
}
return fake_head->next;
}
};
Last updated
Was this helpful?