struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){
if(l1==NULL)//当两链表都为空时,返回NULL,当其中一个为空时,返回另一个非空链表
{
return l2==NULL? NULL:l2;
}
if(l2==NULL)
{
return l1==NULL? NULL:l1;
}
struct ListNode* head=(struct ListNode*)malloc(sizeof(struct ListNode));
head->next=NULL;
struct ListNode* p=head;
if(l1->val<l2->val)
{
head->val=l1->val;
l1=l1->next;
}
else
{
head->val=l2->val;
l2=l2->next;
}
while(l1&&l2)//从两个链表的表头开始,比较两个链表节点的大小,当其中一个链表为空时,退出循环
{
struct ListNode* temp=(struct ListNode*)malloc(sizeof(struct ListNode));//把数值更小的一个节点存储到一个新申请的节点中,同时该链表的指针向后移一位
temp->next=NULL;
if(l1->va
21.合并两个有序链表
最新推荐文章于 2021-11-07 16:33:43 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)