struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
ListNode* Pmergenode = NULL;
if (pHead1 == NULL)return pHead2;//当链表1是空时,合并后就返回链表2
if (pHead2 == NULL)return pHead1;//当链表2是空时,合并后就返回链表1
if (pHead1 == NULL&&pHead2 == NULL)return NULL;//这种情况只有一开始两个链表均为空时发生
else
if(pHead1->val<pHead2->val)
{ Pmergenode=pHead1;
Pmergenode->next=Merge(pHead1->next,pHead2);
}
else
{Pmergenode=pHead2;
Pmergenode->next=Merge(pHead2->next,pHead1);
}
return Pmergenode;
}
};
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
ListNode* Pmergenode = NULL;
if (pHead1 == NULL)return pHead2;//当链表1是空时,合并后就返回链表2
if (pHead2 == NULL)return pHead1;//当链表2是空时,合并后就返回链表1
if (pHead1 == NULL&&pHead2 == NULL)return NULL;//这种情况只有一开始两个链表均为空时发生
else
if(pHead1->val<pHead2->val)
{ Pmergenode=pHead1;
Pmergenode->next=Merge(pHead1->next,pHead2);
}
else
{Pmergenode=pHead2;
Pmergenode->next=Merge(pHead2->next,pHead1);
}
return Pmergenode;
}
};