java发现双链表中的最小元素无效
我写了这个代码,在链表中找到一组数字的最小值
public DLNode<T> getMinimum() {
if (isEmpty()) {
return null;
}
DLNode<T> curr = head;
DLNode<T> min = curr;
T temporaryMinimum = head.getElement();
while (curr.getElement() != null) {
if ((Integer) temporaryMinimum < (Integer) curr.getElement()) {
min = curr;
}
curr = curr.getNext();
}
return min;
}
我正在用这个代码块测试它
public static void getMinElement(){
int[] data = {2, 3, 5, 1, 6};
//Add elements to the list from array data
DoublyLinkedList<Integer> ll = new DoublyLinkedList<>();
for (int i = 0; i < data.length; i++) {
ll.AddLast(data[i]);
}
System.out.println("Size: " + ll.size);
System.out.println("Minimum Element is: " + ll.getMinimum());
}
在main中这样称呼:
getMinElement();
它不会抛出任何错误,但它似乎进入了无限循环或其他什么(取决于我每次启动机器时,机器上使用了多少CPU)
我想指出的是,我的IDE(IntelliJ IDEA)没有显示任何错误或不受控制的循环或类似的警告。 在过去的几天里,我一直在思考这个问题,没有任何运气,现在我已经没有主意了
非常感谢您的帮助
编辑:我的DLNode类是:
class DLNode<T> {
DLNode<T> Element;
T data;
DLNode<T> next;
DLNode<T> prev;
DLNode(T data, DLNode<T> next, DLNode<T> prev) {
this.data = data;
this.next = next;
this.prev = prev;
}
T getElement() {
return data;
}
public DLNode<T> getPrev() {
return prev;
}
public void setPrev(DLNode<T> prev) {
this.prev = prev;
}
public DLNode<T> getNext() {
return next;
}
public void setNext(DLNode<T> next) {
this.next = next;
}
}
共 (0) 个答案