1.解题思路
遍历链表,通过判断两个链表的值从而链接到新的结点后面,遍历完毕后就得到了想要的链表.
2.代码实现
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2)
{
struct ListNode* p=NULL;
struct ListNode* newhead=NULL;
while(list1&&list2)
{
if(list1->val<=list2->val)
{
if(p==NULL)
{
p=list1;
list1=list1->next;
newhead=p;
}
else
{
p->next=list1;
list1=list1->next;
p=p->next;
}
}
else
{
if(p==NULL)
{
p=list2;
list2=list2->next;
newhead=p;
}
else
{
p->next=list2;
list2=list2->next;
p=p->next;
}
}
}
if(list1==NULL&&newhead==NULL)
{
newhead=list2;
}
else if(list2==NULL&&newhead==NULL)
{
newhead=list1;
}
else if(list1==NULL&&newhead!=NULL)
{
while(list2)
{
p->next=list2;
list2=list2->next;
p=p->next;
}
}
else if(list2==NULL&&newhead!=NULL)
{
while(list1)
{
p->next=list1;
list1=list1->next;
p=p->next;
}
}
return newhead;
}
结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!