将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode next;
* };
/
struct ListNode mergeTwoLists(struct ListNode l1, struct ListNode* l2) {
struct ListNode* t1=l1;
struct ListNode* t2=l2;
struct ListNode* L;
struct ListNode* temp;
L=(struct ListNode*)malloc(sizeof(struct ListNode));
L->next=NULL;
struct ListNode* head=L;
while(t1!=NULL&&t2!=NULL){
temp=(struct ListNode*)malloc(sizeof(struct ListNode));
temp->next=NULL;
if(t1->valval){
temp->val=t1->val;
t1=t1->next;
L->next=temp;
L=temp;
}else if(t1->valt2->val){
temp->val=t1->val;
t1=t1->next;
L->next=temp;
L=temp;
}else if(t1->val>t2->val){
temp->val=t2->val;
t2=t2->next;
L->next=temp;
L=temp;
}
}
if(t1NULL){
L->next=t2;
}else if(t2==NULL){
L->next=t1;
}
head=head->next;
return head;
}