struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2)
{
//创建一个新链表
struct ListNode* box = (struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode* NewTable = box;
struct ListNode* ps1 = list1;
struct ListNode* ps2 = list2;
while(1)
{
//两种特殊情况
//1.当ps1为NULL时
if(ps1 == NULL)
{
NewTable->next = ps2;
break;
}
//2.当ps2为NULL时
else if(ps2 == NULL)
{
NewTable->next = ps1;
break;
}
//以下开始进行比较
else if(ps1->val < ps2->val)
{
NewTable->next = ps1;
ps1 = ps1->next;
}
else
{
NewTable->next = ps2;
ps2 = ps2->next;
}
NewTable = NewTable->next;
}
return box->next;
}