class Solution {
public:
ListNode merge(ListNode l1, ListNode* l2) {
if(!l1)
{
return l2;
}
if(!l2)
{
return l1;
}
ListNode* p = nullptr;
if(l1 -> val <= l2 ->val)
{
p = l1;
l1 = l1 -> next;
}
else
{
p = l2;
l2 = l2 -> next;
}
ListNode* head = p;
while(l1 && l2)
{
if(l1 -> val <= l2 -> val)
{
p -> next = l1;
l1 = l1 -> next;
}
else
{
p -> next = l2;
l2 = l2 -> next;
}
p = p -> next;
}
if(l1)
{
p -> next = l1;
}
if(l2)
{
p -> next = l2;
}
return head;
}
};