输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则
C++
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
ListNode* pnew=new ListNode(-1);
ListNode* pcur=pnew;
ListNode* p=pHead1;
ListNode* q=pHead2;
while(p && q)
{
if(p->val < q->val)
{
pcur->next=p;
pcur=p;
p=p->next;
}
else
{
pcur->next=q;
pcur=q;
q=q->next;
}
}
while(p)
{
pcur->next=p;
pcur=p;
p=p->next;
}
while(q)
{
pcur->next=q;
pcur=q;
q=q->next;
}
return pnew->next;
}
};