文章目录
💎一、题目
🏆1.题目描述
🏆2.原题链接
💎二、解题报告
🏆1.思路分析
🏆2.代码详解
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
//带哨兵位
struct ListNode* head, *tail;
head = tail = (struct ListNode*)malloc(sizeof(struct ListNode)); //1
head->next = NULL;
while(list1 != NULL && list2 != NULL){ //2
if(list1-> val < list2-> val){
tail->next = list1;
tail = list1;
list1 = list1->next;
}else{
tail -> next = list2;
tail = list2;
list2 = list2->next;
}
}
if(list1 != NULL){ //3
tail->next = list1;
}
if(list2 != NULL){
tail->next = list2;
}
struct ListNode* list = head->next; //4
free(head);
return list; //5
}