struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {
struct ListNode* ps=( struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode* tmp=ps;
if(list1==NULL)
return list2;
if(list2==NULL)
return list1;
while(list1&&list2)
{
if(list1->val<=list2->val)
{
tmp->next=list1;
list1=list1->next;
}
else
{
tmp->next=list2;
list2=list2->next;
}
tmp=tmp->next;
}
if(list1==NULL)
{
tmp->next=list2;
}
if(list2==NULL)
{
tmp->next=list1;
}
return ps->next;
}