这道题也比较简单,可以新建一个链表,然后将其它两个链表分别和进来,或者也可以将某一个链表合并到另一个链表中。
下面采用的是前一个方法:
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 35
|
class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(pHead1==NULL) return pHead2; if(pHead2==NULL) return pHead1; ListNode* result=new ListNode(0); ListNode* pResult=result; while(pHead1!=NULL && pHead2!=NULL){ if(pHead1->val<=pHead2->val){ pResult->next=pHead1; pHead1=pHead1->next; }else{ pResult->next=pHead2; pHead2=pHead2->next; } pResult=pResult->next; } if(pHead1!=NULL){ pResult->next=pHead1; } if(pHead2!=NULL){ pResult->next=pHead2; } return result->next; } };
|