合併兩個已經排好序的連結串列
阿新 • • 發佈:2018-12-30
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;
}
};