如何递归复制双向链表C ++

时间:2016-04-01 17:58:39

标签: c++

我无法弄清楚我在这里做错了什么。

//递归复制列表。

    void duplicateNodes(const SortedList& o, Node * const copyIter) {

        if (copyIter != NULL) {
            o.add(o.head, copyIter->data);
            duplicateNodes(o, copyIter->next);
        }
    }

2 个答案:

答案 0 :(得分:0)

该方法"添加"做?它是否将节点添加到列表的结尾或开头?

另外,您是否尝试创建2个已排序列表或只是将列表中的每个节点加倍?见下文:

原始列表:A-> B-> C

2列表:A-> B-> C& A-> B-&以及c 双重每个节点:A-> A-> B-> B-> C-> C

答案 1 :(得分:0)

const移至第二个参数:

void duplicateNodes(SortedList& o, Node const * const copyIter)

您正在修改第一个参数,因此它不能是const