LeetCode21. 合并两个有序链表
作者:互联网
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]
题解
遍历两个链表,如果链表a的数比链表b的数小则优先赋值到新链表中,最后判断下是不是全部赋值完毕,没有就接到新链表后
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){
struct ListNode *L=(struct ListNode *)malloc(sizeof(struct ListNode));
struct ListNode *Head=L;
while(l1&&l2){ //遍历结构体的元素
if(l1->val<l2->val){
Head->next=l1;
l1=l1->next;
}else{
Head->next=l2;
l2=l2->next;
}
Head=Head->next;
}
//判断是否赋值完毕
if(l1){
Head->next=l1;
}else{
Head->next=l2;
}
return L->next;//将头节点的下一个真正链表元素的地址返回
}
标签:Head,ListNode,struct,next,链表,有序,l1,LeetCode21 来源: https://blog.csdn.net/weixin_44229867/article/details/120460532