在下面的数据结构为什么仅仅改变这个数据结构中的nextNode是不够的?
public class ListNode<T> {
T data;
ListNode<T> nextNode;
ListNode(T object) {
this(object, null);
}
ListNode(T object, ListNode<T> node) {
data = object;
nextNode = node;
}
public T getData() {
return data;
}
public ListNode<T> getNextNode() {
return nextNode;
}
}
public class List<T> {
private ListNode<T> firstNode;
private ListNode<T> lastNode;
private String name;
public List() {
this("list");
}
public List(String listName) {
name = listName;
firstNode = lastNode = null;
}
public void insertAtFront(T insertItem) {
if(isEmpty()) firstNode = lastNode = new ListNode<T>(insertItem);
else firstNode = new ListNode<T>(insertItem, firstNode);
}
public void insertAtBack(T insertItem) {
if(isEmpty()) firstNode = lastNode = new ListNode<T>(insertItem, null);
else lastNode = lastNode.nextNode = new ListNode<T>(insertItem)
}
}
为什么是不够的insertAtBack方法来做到这
else lastNode.nextNode = new ListNode<T>(insertItem)
? (我也是不知道什么a = b = c = something
在java中的意思。)
因为如果你这样做,'lastNode'不会是最后一个节点。 – immibis 2014-11-06 22:13:30