题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
示例1
输入
{1,3,5},{2,4,6}
返回值
{1,2,3,4,5,6}
/*
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==NULL) return pHead2;
if(pHead2==NULL) return pHead1;
ListNode*pHead=NULL,*ans;
if(pHead1->val<pHead2->val)
pHead=pHead1,pHead1=pHead1->next;
else pHead=pHead2,pHead2=pHead2->next;
ans=pHead;
while(pHead1&&pHead2)
{
if(pHead1->val<pHead2->val)
ans->next=pHead1,pHead1=pHead1->next;
else ans->next=pHead2,pHead2=pHead2->next;
ans=ans->next;
}
if(pHead1) ans->next=pHead1,pHead1=pHead1->next;
if(pHead2) ans->next=pHead2,pHead2=pHead2->next;
return pHead;
}
};