wordpress 代码结构,seo博客模板,顺义住房和城乡建设委员会网站,做的比较唯美的网站题目如下: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例如下:
示例 1#xff1a;
输入#xff1a;l1 [1,2,4], l2 [1,3,4]
输出#xff1a;[1,1,2,3,4,4]示例 2#xff1a;
输入#xff1a;l1 [], l2 …题目如下: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例如下:
示例 1
输入l1 [1,2,4], l2 [1,3,4]
输出[1,1,2,3,4,4]示例 2
输入l1 [], l2 []
输出[]示例 3
输入l1 [], l2 [0]
输出[0]
思路解析:
本代码先是利用变量获取到链表的个数然后分别利用两个指针分别访问两个链表里面的值然后进行比较把较小的值放到建立的哨兵位后面然后让tmp和哨兵位同时创建的指针指向哨兵位的位置free哨兵位返回tmp即可。
代码解析
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2)
{struct ListNode* p1, *p2;struct ListNode* linode1 list1;struct ListNode* linode2 list2;struct ListNode* head1, * tmp;tmp head1 (struct ListNode*)malloc(sizeof(struct ListNode));int n 0;int m 0;while (linode1 ! NULL){linode1 linode1-next;n;}while (linode2 ! NULL){linode2 linode2-next;m;}linode1 list1;linode2 list2;int x m n;while (x--){if (linode1 NULL){p2 linode2-next;linode2-next tmp;tmp linode2;linode2 p2;}else if (linode2 NULL){p1 linode1-next;linode1-next tmp;tmp linode1;linode1 p1;}else if (linode1-val linode2-val){p1 linode1-next;linode1-next tmp;tmp linode1;linode1 p1;}else{p2 linode2-next;linode2-next tmp;tmp linode2;linode2 p2;}}free(head1);return tmp;}}