Вот конструктор: < /p>
Код: Выделить всё
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;
i удалил текущий код и сделал следующий тест: < /p>
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;
< /code>
И это работает отлично (но я заранее знал, что я тестирую только с 3 -й списком элементов). Как я бы сделал это с циклом while без использования такого оператора, как:
copy.firstnode = copy.firstnode.next;
Я должен каким -то образом переместить список «копировать»?>
Подробнее здесь: https://stackoverflow.com/questions/221 ... st-in-java