企业信息化建设如何帮助客户理解网站流量,外包做网站需要多少钱,百度指数与百度搜索量,杭州百度首页优化https://leetcode.cn/problems/merge-two-sorted-lists/?envTypestudy-plan-v2envIdtop-100-liked 将两个有序的链表合并为一个新的有序链表#xff0c;那不就是和归并排序中最后合并的思想一样吗#xff1f;只不过那里合并的是数组#xff0c;这里合并的是链表。 首先…https://leetcode.cn/problems/merge-two-sorted-lists/?envTypestudy-plan-v2envIdtop-100-liked 将两个有序的链表合并为一个新的有序链表那不就是和归并排序中最后合并的思想一样吗只不过那里合并的是数组这里合并的是链表。 首先如果有一个链表为空那就直接返回另一个链表。 同样如果都为空就返回NULL。 同归并类似如果合并过程中有一个链表合并完成后就将另一个链表的剩余部分全部接在最终链表的后面。
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {if (list1 NULL)return list2;if (list2 NULL)return list1;struct ListNode* head; //创建头结点if (list1-val list2-val) {head list1;list1 list1-next;} else {head list2;list2 list2-next;}struct ListNode* tmp head; //用tmp来链接while (list1 list2) {if (list1-val list2-val) {tmp-next list1;list1 list1-next;tmp tmp-next;} else {tmp-next list2;list2 list2-next;tmp tmp-next;}}if (list1 NULL) {tmp-next list2;}if (list2 NULL) {tmp-next list1;}return head;
}