0

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

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;

}
4

2 回答 2

2

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

nodeBefore.next = new Node(start.data, null);
于 2013-11-13T00:27:31.093 回答
0

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

此外,请重新考虑您的变量名称。打电话怎么样nodeBefore prevNode

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

于 2013-11-13T00:28:29.550 回答