21. Listas de fusionar dos ordenadas *
https://leetcode.com/problems/merge-two-sorted-lists/
título Descripción
Combinar dos listas enlazadas ordenados y devolverlo como una nueva lista. La nueva lista debe hacerse mediante corte y empalme juntos los nodos de las dos primeras listas.
Ejemplo:
Input: 1->2->4, 1->3->4
Output: 1->1->2->3->4->4
Implementación en C ++ 1
El sujeto no es difícil, además, la lista de preguntas generalmente se establece un nodo virtual dummy
se ahorrará un montón de problemas.
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if (!l1 && !l2) return nullptr;
ListNode *dummy = new ListNode(0);
auto p = dummy;
while (l1 && l2) {
if (l1->val < l2->val) {
p->next = l1;
l1 = l1->next;
} else {
p->next = l2;
l2 = l2->next;
}
p = p->next;
}
p->next = l1 ? l1 : l2;
return dummy->next;
}
};