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 <= 100Both
l1andl2are 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?