/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* Merge(ListNode* p1, ListNode* p2)
{
if(p1==nullptr)//特殊情况当p1/p2为空的时候 合并后的链表直接为 不为空的那个
return p2;
if(p2==nullptr)
return p1;
ListNode *pNode=new ListNode(0);
if(p1->val<=p2->val)//找出小的赋值给pNode;
{
pNode=p1;
pNode->next=Merge(p1->next,p2);//递归给下一个结点
}
else
{
pNode=p2;
pNode->next=Merge(p1,p2->next);
}
return pNode;
}
};