20170927_合并两个已排序的单链表
//合并两个已经排序的单链表
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<numeric>
#include<functional>
using namespace std;
struct ListNode
{
int value;
ListNode *next;
ListNode(int x):value(x),next(nullptr) {};
};
ListNode *MergerList(ListNode *list1, ListNode *list2)
{
if(list1==nullptr && list2==nullptr)
return nullptr;
if(list1==nullptr)
return list2;
if(list2==nullptr)
return list1;
ListNode *pHead=nullptr;
if(list1->value <= list2->value)
{
pHead=list1;
pHead->next=MergerList(list1->next, list2); //递归调用
}
else
{
pHead=list2;
pHead->next=MergerList(list1, list2->next); //递归调用
}
return pHead;
}