Я пытаюсь вставить элементы в пользовательский связанный список, сохраняя список в порядке.
Моя работа до сих пор такова:
public class CustomList {
public CustomList() {
this.first = null;
}
public void insert(Comparable newThing) {
Node point = this.first;
Node follow = null;
while (point != null && point.data.compareTo(newThing) < 0) {
follow = point;
point = point.next;
}
if (point == null) {
Node newNode = new Node(newThing);
newNode.next = this.first;
this.first = newNode;
} else {
Node newNode = new Node(newThing);
newNode.next = point;
if (follow == null) {
this.first = newNode;
} else {
follow.next = newNode;
}
}
}
private Node first;
private class Node {
public Comparable data;
public Node next;
public Node(Comparable item) {
this.data = item;
this.next = null;
}
}
}
Вывод, который я получаю из этого, выглядит так, как будто он упорядочивает части списка, а затем начинается заново.
Пример (сортирую строки):
Вместо того, чтобы получить что-то вроде a,b,c,...,z
Я получаю a,b,c,...,z,a,b,c,...,z,a,b,c,...,z
Похоже, что он не «видит» весь список в определенные моменты.
Это часть задания HW, поэтому я буду признателен за предложения, но позвольте мне самому разобраться!