我不知道为什么我在这里得到这个段错误。我正在尝试将所有其他节点都放置在新列表中。
编辑:这就是我最终得到的结果,但我仍然遇到段错误

template <class T>
List<T> List<T>::mixSplit()
{
    List<T> newList;
    newList.length=0;
    for (int count=0;count<2;count++)
        newList.head=newList.head->next;
    newList.tail=tail;
    newList.head->prev=NULL;
    newList.tail->next=NULL;
    return newList;
}

最佳答案

在第一次迭代

for (int count=0;count<1;count++)
    newList.head=newList.head->next;

... newList.headNULL ...所以使用newList.head->next是一个坏主意。

我建议您相当正常地遍历当前列表(即current = head; while(current) ...),在循环内增加一个计数器以跟踪列表中的当前位置,并且每当循环计数器为偶数或0(counter % 2 == 0(counter & 1) == 0)时都使用标准新列表上的“列表添加”功能可添加新节点。

关于c++ - 链表操作段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7669204/

10-12 22:29