-1
我在这里有一个递归函数,但它导致溢出错误,所以我需要将其更改为非递归函数。任何帮助如何做到这一点将不胜感激!转换递归函数
void MergeSort(struct node** headRef)
{
node* head = *headRef;
node* a;
node* b;
if ((head == NULL) || (head->next == NULL))
{
return;
}
FrontBackSplit(head, &a, &b);
MergeSort(&a);
MergeSort(&b);
*headRef = SortedMerge(a, b);
}
你研究过吗? –
这是一个学术问题吗?否则,您可以在标准容器上使用STL'sort'。如果你喜欢这个链表实现,我们也需要看到'FrontBackSplit',我想,分析。 –
是的,我必须使用链表。我把这个功能放在下面。 –