0
我正在使用這樣的代碼,但運行時出現錯誤......系統返回java.util.EmptyStackException..Can任何人都可以幫助我?初始化可以找到最小數量的堆棧。 Java
public class Solution {
private Stack<Integer> val = new Stack<>();
private Stack<Integer> stackMin = new Stack<>();
Integer temp = null;
public void push(int node) {
this.val.push(node);
if(this.stackMin == null){
this.stackMin.push(node);
}else if(node<=this.min()){
this.stackMin.push(node);
}
}
public void pop() {
if (this.val==null) {
throw new RuntimeException("Stack is empty.");
}
int value = this.val.pop();
if(value == this.min()){
this.stackMin.pop();
}
}
public int top() {
if(this.val!=null){
return this.val.peek();
}else{
throw new RuntimeException("Stack is empty");
}
}
public int min() {
if(this.stackMin!=null){
return this.stackMin.peek();
}
throw new RuntimeException("Stack is empty");
}
}
在什麼叫你得到這個異常? – Mureinik
找到錯誤...我應該使用isEmpty()來檢查堆棧是否爲空... – Akrisllen