class StackWithMin extends Stack<NodeWithMin>{
public void push(int value){
int newMin = Math.min(value, min());
super.push(new NodeWithMin(value, newMin));
}
public int min(){
if (this.isEmpty()){
return Integer.MAX_VALUE;
}else{
return peek().min;
}
}
}
class NodeWithMin{
public int value;
public int min;
public NodeWithMin(int v, int min){
value=v;
this.min=min;
}
}
当我测试这个类时,似乎没有或者添加超级。在push / peek之前(第5行和第12行)产生相同的结果。那么,是非常必要的吗?
这个解决方案的作者有super.push(),但没有加前缀peek(),她有没有理由这样做?
答案 0 :(得分:2)
super
仅在StackWithMin
覆盖push
方法时才有用,您将从push
Stack
方法