题解 | #合并两个排序的链表#
合并两个排序的链表
https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode* pHead3=new ListNode(1000); pHead3->next=NULL; ListNode* p1=pHead1; ListNode* p2=pHead2; ListNode* p3=pHead3; while(p1!=NULL||p2!=NULL) { ListNode* q=new ListNode(1); if(p1==NULL){q->val=p2->val;p2=p2->next;} else if(p2==NULL){q->val=p1->val;p1=p1->next;} else if(p1->val<=p2->val){q->val=p1->val;p1=p1->next;} else{q->val=p2->val;p2=p2->next;} q->next=NULL; p3->next=q; p3=q; } p3=pHead3; pHead3=pHead3->next; delete p3; return pHead3; } };