归并思路 :建立哨兵位,让 list1 中的值 和 list2 中的值进行比较,小的尾插。
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) { struct ListNode* head; struct ListNode* tail; head = tail =(struct ListNode*)malloc(sizeof(struct ListNode)); tail->next = NULL; while(list1 && list2) { if(list1->val < list2->val) { tail->next = list1; tail = tail->next; list1 = list1->next; } else { tail->next = list2; tail = tail->next; list2 = list2->next; } } if(list1) { tail->next = list1; //建立联系 tail = tail->next; } if(list2) { tail->next = list2; tail = tail->next; } return head->next; }
21. 合并两个有序链表
于 2022-05-08 18:53:03 首次发布