class Solution {
public:
ListNode* mergeTwoLists(ListNode* list1, ListNode* list2)
{
if(list1 == nullptr){
return list2;
}
if(list2 == nullptr){
return list1;
}
ListNode* head = nullptr;
if(list1->val > list2->val)
{
head = list2;
list2 = list2->next;
}else{
head = list1;
list1 = list1->next;
}
ListNode* p = head;
while(list1 != nullptr && list2 != nullptr)
{
if(list1->val > list2->val)
{
p->next = list2;
p = list2;
list2 = list2->next;
}
else{
p->next = list1;
p = list1;
list1 = list1->next;
}
}
if(list1 != nullptr){
p->next = list1;
}
if(list2 != nullptr){
p->next = list2;
}
return head;
}
};