运行代码时出现库存溢出错误,但我不知道问题出在哪里。有人可以帮我解决这个问题吗?
这是给我错误的方法。我很确定这与我以递归方式插入节点的方式有关,但我不知道我做错了什么。
此方法的目的是在节点链接中找到正确的位置并将新项目插入那里。节点需要保持升值。我希望这有助于更好地解释目的。谢谢。
public class OrderedList< T extends Comparable<T> > {
private ListNode<T> firstNode;
private ListNode<T> lastNode;
private String name; // the name is used in printing
// constructor creates an empty ordered list with "ordered list" as the name
public OrderedList() {
this( "ordered list" );
}
// constructor creates an empty ordered list with a name
public OrderedList( String listName ) {
name = listName;
firstNode = lastNode = null;
}
// insert an item into the right position of the ordered list
public void insert( T insertItem ) {
if (isEmpty()) {
firstNode = lastNode = new ListNode<T>(insertItem);
}else {
if (insertItem.compareTo(firstNode.getData()) <= 0) {
firstNode = new ListNode<T>(insertItem, firstNode);
}else {
if (firstNode.equals(lastNode)) {
lastNode = new ListNode<T>(insertItem);
}else {
T store = firstNode.getData();
firstNode = firstNode.getNext();
insert(insertItem);
firstNode.setNext(firstNode);
firstNode.setData(store);
}
}
}
}
public boolean isEmpty() {
return firstNode == null;
}
}