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。