Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 复制链接列表。。。不使用克隆_Java_Linked List - Fatal编程技术网

Java 复制链接列表。。。不使用克隆

Java 复制链接列表。。。不使用克隆,java,linked-list,Java,Linked List,我正在尝试编写一个类方法来复制现有的链表,而不使用克隆。我在原始列表中的数据是: 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.st

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

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;

}

既然这看起来像家庭作业,我就给你一个提示。问题就在这句话里。您要将哪些数据放入下一个节点

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

这是因为您一直使用相同的开始数据创建节点

另外,重新考虑变量名。在前面调用
nodeBefore
prevNode
怎么样


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

D'oh。谢谢,这是家庭作业,谢谢你的提示。比盲目复制代码要好得多。我要的不是start.data,而是ptr.data。