5月12日答案
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
struct ListNode *p1 = list1,*p2 = list2;
struct ListNode *anshead = (struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode *neew = NULL,*t = anshead;
while(p1 != NULL && p2 != NULL){
int min;
if(p1->val >= p2->val){
min = p2->val;
p2 = p2->next;
}else{
min = p1->val;
p1 = p1->next;
}
neew = (struct ListNode*)malloc(sizeof(struct ListNode));
neew->val = min;
t->next = neew;
t = neew;
}
while(p1 != NULL){
neew = (struct ListNode*)malloc(sizeof(struct ListNode));
neew->val = p1->val;
t->next = neew;
t = neew;
p1 = p1->next;
}
while(p2 != NULL){
neew = (struct ListNode*)malloc(sizeof(struct ListNode));
neew->val = p2->val;
t->next = neew;
t = neew;
p2 = p2->next;
}
t->next = NULL;
return anshead->next;
}