PLink mergeSortLink(PLink aHeader)
{
if (aHeader->next == NULL)
{
return aHeader;
}
PLink a,b;
a = aHeader;
b = aHeader->next;
while ((b != NULL)&&(b->next != NULL))
{
aHeader = aHeader->next;
b = b->next->next;//可以模拟是除以2的方法
}
b = aHeader->next;
aHeader->next = NULL;
//改进如下
if (a->data > b->data)
{
return merge(mergeSortLink(a),mergeSortLink(b));
}
else
{
return merge(mergeSortLink(b),mergeSortLink(a));
}
}