/** * struct ListNode { * int val; * struct ListNode *next; * }; */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pHead1 ListNode类 * @param pHead2 ListNode类 * @return ListNode类 */ struct ListNode* Merge(struct ListNode* pHead1, struct ListNode* pHead2 ) { // write code here struct ListNode*d = (struct ListNode*)malloc(sizeof(struct ListNode)),*tail = NULL; d->val = -1; d->next = tail; struct ListNode* pre = d; struct ListNode* cur1 = pHead1,*cur2 = pHead2; while(cur1&&cur2) { if(cur1->val<cur2->val) { pre->next = cur1; pre = cur1; cur1 = cur1->next; } else { pre->next = cur2; pre = cur2; cur2 = cur2->next; } } if(cur1==NULL) { pre->next = cur2; } else { pre->next = cur1; } return d->next; }