реализация связного списка на c ++ с использованием сортировки слиянием [closed]

Может ли кто-нибудь помочь мне, где я делаю ошибку сегментации. Я сортирую связанный список с помощью сортировки слиянием. Думаю, мне нужно получить доступ к некоторым отрицательным индексам. пожалуйста, проверьте мой код.

Node* merge(Node *left, Node *right)
{
Node *res = new Node();

if (left == 0)
{
    return right;
}

else if (right == 0)
{
    return left;
}

else if ((left->data) < (right->data))
{
    res = left;
    res->link = merge(left->link, right);
}
else
{
    res = right;
    res->link = merge(left, right->link);
}

return res;
}

Node* mergesort(Node *head)
{
if (head == 0 || (head->link) == 0)
{
    return head;
}

Node *mid = getmid(head);
Node *left = head;
Node *right = mid->link;
mid->link = 0;

Node *sortedlist = merge(left, right);
return sortedlist;

}

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *