题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
/*
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;
}
};