/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: queue<int> q; ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(pHead1 == NULL && pHead2 == NULL){ return NULL; } while(true){ if(pHead1 == NULL && pHead2 == NULL){ break; }else if(pHead1 != NULL && pHead2 == NULL){ q.push(pHead1->val); pHead1 = pHead1->next; }else if(pHead1 == NULL && pHead2 != NULL){ q.push(pHead2->val); pHead2 = pHead2->next; }else{ if(pHead1->val<=pHead2->val){ q.push(pHead1->val); pHead1 = pHead1->next; }else{ q.push(pHead2->val); pHead2 = pHead2->next; } } } ListNode* head = (ListNode*)malloc(sizeof(ListNode)); ListNode* p = head; while(!q.empty()){ p->val = q.front(); q.pop(); if(q.empty()){ //没有提前跳出循环,会导致最后多出一个0 break; } p->next = (ListNode*)malloc(sizeof(ListNode)); p = p->next; } //p = NULL; return head; } };
原文:https://www.cnblogs.com/fzuhyj/p/10767671.html