我认为我有一个良好的开端,但当我运行测试程序时,我得到:SortedLinkedList @ 2a139a55 这是否意味着我的toString()或add()方法有问题?
public void add(String data) {
StringNode current = head;
StringNode newNode = new StringNode(data);
if (head == null) {
head = newNode;
} // End if
else {
while (current != null) {
if (data.compareTo(current.data) < 0)
break;
previous = current;
current = current.getNext();
} // End while
} // End else with while
}// End add
我的toString()位于一个名为StringNode的内部类中:
public static class StringNode {
private String data;
private StringNode next;
public StringNode(String newData) {
data = newData;
next = null;
}
public String getData() {
return data;
}
public void setData(String newData) {
this.data = data;
}
public StringNode getNext() {
return next;
}
public void setNext(StringNode nextNode) {
this.next = next;
}// End setNext
public String toString() {
return data;
}// End toString
}// EndStringNode class
答案 0 :(得分:3)
除了正确处理空列表之外,当你找到一个位置时,你实际上并没有将新节点放入列表中。
在while循环中,if语句还需要将newNode插入到列表中,但您所做的只是突破。
您还必须正确处理极端情况:当newNode成为新头或newNode成为新尾时。