Я понимаю, что это означает, что введенный вами список остается неизменным и что новый связанный список изолирован от «старого». Мой код дает мне новый список, который точно такой же, как старый (тот, который вы вводите в качестве параметра), и это то, что я хочу, но старый изменен.
Вот конструктор:
Код: Выделить всё
public SortedLinkedSet(SortedLinkedSet copy) {
if (copy == null) {
this.firstNode = null;
} else{
SortedLinkedSetNode firstNode1 = new SortedLinkedSetNode(copy.getFirstNode().value);
this.firstNode = firstNode1;
// so basically I am chaining elements from "copy" to firstNode1 and then making "this" = to firstNode1.
while (copy.firstNode.next !=null) {
firstNode1.add(copy.getFirstNode().next.value);
this.firstNode = firstNode1;
copy.firstNode = copy.firstNode.next;
// at the end of this loop I have a successful new linkedList with the same value, but "copy" has been changed
}
}
}
ОБНОВЛЕНИЕ: Как указал Иридер и проведя тест, я почти уверен, что проблема в операторе:
copy.firstNode = copy.firstNode.next;
Я удалил текущий код и выполнил следующую проверку:
Код: Выделить всё
SortedLinkedSetNode firstNode = new SortedLinkedSetNode(copy.getFirstNode().value);
this.firstNode=firstNode;
firstNode.add(copy.getFirstNode().next.value);
this.firstNode = firstNode;
firstNode.add(copy.getFirstNode().next.next.value);
this.firstNode = firstNode;
copy.firstNode = copy.firstNode.next;
Мне нужно как-то перемещаться по списку «копий»?
Подробнее здесь: https://stackoverflow.com/questions/221 ... st-in-java