题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* Merge(ListNode* pHead1,ListNode *pHead2){ if(!pHead1) return pHead2; if(!pHead2) return pHead1; if(!pHead1&&!pHead2) return nullptr; ListNode *p1=pHead1; ListNode *p2=pHead2; ListNode *q1=p1->next; ListNode *q2=p2->next; ListNode *h=nullptr; if(p1->val<=p2->val) h=p1; else h=p2; while(p1&&p2){ if(p1->val<=p2->val){ p1->next=p2; p1=q1; if(p1) q1=p1->next; }else{ p2->next=p1; p2=q2; if(p2) q2=p2->next; } } return h; } };