我一直尝试在C++中递归地编写一个排序链表函数。

我一直尝试在C++中递归地编写一个排序链表函数。,c++,linked-list,C++,Linked List,我一直在尝试递归地编写一个排序链表函数。有人能帮我吗。我没有得到任何与该功能 void LinkedList::insertRecurcive(Node* head, int data) { if (head == NULL || !(head->Data < data ) ) { head->next = new Node;`` head->next->Data = data; head->next-&

我一直在尝试递归地编写一个排序链表函数。有人能帮我吗。我没有得到任何与该功能

void LinkedList::insertRecurcive(Node* head, int data)
{
if (head == NULL || !(head->Data < data ) )
    {
        head->next = new Node;``
        head->next->Data = data;
        head->next->next = NULL; 

    }
    else
    insertRecurcive( head->next, data );


}

void LinkedList::insert(int data)
{

    insertRecurcive(head, data);

}
您的代码:

if (head == NULL || !(head->Data < data ) )
    {    
        head->next = new Node;``
head->next->Data = data;
head->next->next = NULL;
}

分配给head->next即使head为空,这也会失败。

我认为询问者知道他们所拥有的不起作用。机会很大,这就是为什么他们在这里问问题。很抱歉,我不能理解你的观点。你能在写函数的时候解释一下吗。这将是非常有用的。这里最困难的部分是当你递归到下一个节点时,发现你需要插入一个新节点,你不再有上一个节点,这样你就可以链接到它的下一个节点并维护链接列表。传入对上一个节点的下一个节点的引用,或者在递归到下一个节点之前测试下一个节点的数据。