我正在尝试编写一个类方法来复制现有的链表而不使用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;
}
答案 0 :(得分:2)
由于这看起来像家庭作业,我只会给你一个提示。问题出在本声明中。您将哪些数据放入下一个节点?
nodeBefore.next = new Node(start.data, null);
答案 1 :(得分:0)
那是因为你不断创建具有相同起始数据的节点。
此外,重新考虑您的变量名称。如何拨打nodeBefore
prevNode
?
您可以添加的另一点是Node类的实现。