/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution
{
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
ListNode* newlist=new ListNode(0);
ListNode* cur=newlist;
ListNode* p1=pHead1;
ListNode* p2=pHead2;
while((p1!=NULL)&&(p2!=NULL))
{
if((p1->val)<=(p2->val))
{
cur->next=p1;
cur=cur->next;
p1=p1->next;
}
else
{
cur->next=p2;
cur=cur->next;
p2=p2->next;
}
}
if(p1!=NULL)
{
cur->next=p1;
}
if(p2!=NULL)
{
cur->next=p2;
}
return newlist->next;
}
};