标题基本上说明了我要解决的问题。现在,我将元素添加到列表中,但是将它们添加到列表的开始而不是末尾,并且我想将它们添加到末尾,但是我不知道现在如何。这是我的两个类(元素/链表)的外观:
清单元素:
public class ListElement<E> {
public ListElement<E> next;
public E data;
public ListElement(E data) {
next = null;
this.data = data;
}
}
使用元素添加到列表中:
public class OptimizedLog<E> implements Iterator<E> {
public ListElement<E> list;
public OptimizedLog() {
list = null;
}
public void add(E data) {
ListElement<E> le = new ListElement<E> (data);
le.next = list; // next becomes null
list = le; // list becomes le
}
有人有任何建议吗?
最佳答案
您可以使用以下代码:
public void addFirst(E data) {
ListElement<E> le = new ListElement<E>(data);
le.next = list;
list = le;
}
public void addLast(E data) {
if (list == null) {
addFirst(data);
return;
}
ListElement<E> current = list;
while (current.next != null) {
current = current.next;
}
ListElement<E> le = new ListElement<E>(data);
current.next = le;
}
但是,为什么不为该任务使用标准的Java数据结构呢?