题目描述
解题思路
先新建一个链表,遍历两个链表,每次将较小值插入新链表,移动较小链表的指针,直至一链表遍历完,再插入剩余元素
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
* Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* (struct ListNode* l1, struct ListNode* l2) { if (!l2) return l1; if (!l1) return l2; struct ListNode *p1,*p2=l2,*p3,*l3=NULL,*head1,*head2; head1=(struct ListNode*)malloc(sizeof(struct ListNode)); head2=(struct ListNode*)malloc(sizeof(struct ListNode)); head1->next=l1;head2->next=l2; l3=p3=head1; while(p1&&p2) { if(p1->val<=p2->val) { p3->next=p1;p3=p1;p1=p1->next; } else { p3->next=p2;p3=p2;p2=p2->next; } } p3->next=p1?p1:p2; return l3->next; }
|
近期评论