将两个升序链表合并为一个新的 升序 链表并返回(C语言)

struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){
         
	//带头结点    
	//struct ListNode *p=l1->next;    
	//struct ListNode *q=l2->next;    
	//不带头结点    
	struct ListNode* l3, *t;    
	l3=(struct ListNode*)malloc(sizeof(struct ListNode));    
	l3->next = NULL;    
	t=l3;    
	while(l1!=NULL&&l2!=NULL)    //l1和l2中较小的插入l3的尾部
	{
     
		if(l1->val<l2->val)        
		{
                 
			t->next = l1;            
			l1 = l1->next;            
			//t = t->next;        
		}        
		else        
		{
                 
			t->next = l2;            
			l2 = l2->next;            
			//t = t->next;        
		}        
		t = t->next;    
	}    
	//l1,l2中还有剩余结点    
	if(l1)t->next = l1;    
	if(l2)t->next = l2;    
	return l3->next;
}

(第一次发布)有任何疑问或建议请让我知道。

你可能感兴趣的:(算法,链表,单链表,算法)