#include <stdio.h>
#include "link.h"
/*合并两个排序链表*/
LinkNode * mergeLink(LinkNode *& pHead1, LinkNode *& pHead2)
{
if(pHead1 == NULL)
return pHead2;
else if(pHead2 == NULL)
return pHead1;
LinkNode * pHead =0;
if(pHead1->_value <= pHead2->_value)
{
pHead = pHead1;
pHead->_next = mergeLink(pHead1->_next, pHead2);
}
else
{
pHead = pHead2;
pHead->_next = mergeLink(pHead1, pHead->_next);
}
return pHead;
}
int main()
{
LinkNode * pHead1 = 0;
LinkNode * pHead2 = 0;
int a[] = {1,3,5,7,9,11,13,14};
int b[] = {2,4,6,8,10,12,15,19};
for (int i = 0; i<sizeof(a) / sizeof(a[0]); i++)
{
createLink(pHead1,a[i]);
}
for (int i = 0; i<sizeof(b) / sizeof(b[0]); i++)
{
createLink(pHead2,b[i]);
}
printLink(pHead1);
printLink(pHead2);
printLink(mergeLink(pHead1,pHead2));
return 0;
}