复制链表...不使用克隆

时间:2013-11-13 00:16:04

标签: java linked-list

我正在尝试编写一个类方法来复制现有的链表而不使用clone。我在原始列表中的数据是:

3 8 -1 5 12 4 -3 7 0 10 3 6 9 -2 5 11 -6 -4 -2 -1

问题是我得到一个新的列表,其中包含20个满-6的节点。我的方法如下:

public SortedLinkedList copy(){

    SortedLinkedList copy = new SortedLinkedList();

    Node ptr, nodeBefore;

    copy.start = new Node(start.data,null);
    ptr = start.next;
    nodeBefore = copy.start;

    while(ptr != null){
        nodeBefore.next = new Node(start.data, null);
        nodeBefore = nodeBefore.next;
        ptr = ptr.next;
    }
    return copy;

}

2 个答案:

答案 0 :(得分:2)

由于这看起来像家庭作业,我只会给你一个提示。问题出在本声明中。您将哪些数据放入下一个节点?

nodeBefore.next = new Node(start.data, null);

答案 1 :(得分:0)

那是因为你不断创建具有相同起始数据的节点。

此外,重新考虑您的变量名称。如何拨打nodeBefore prevNode

您可以添加的另一点是Node类的实现。