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;
}
}
当我测试这个类时,似乎没有或有添加 super.在push/peek(第5行和第12行)之前产生相同的结果。那么,super 有必要吗?
这个解决方案的作者有 super.push(),但没有前缀 peek(),她这样做有什么原因吗?
最佳答案
super
仅当 StackWithMin
时才需要覆盖 push
方法,您将调用push
方法来自Stack
关于java - 为了使用 Java 的父类(super class)方法,必须调用 super,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27890279/