包含min函数的栈
题目
解题思路:定义两个栈,一个正常存放对栈进行操作,另一个一直存放最小元素。
private Stack<Integer> stack = new Stack();
private Stack<Integer> minStack = new Stack();
public void push(int node) {
stack.push(node);
//判断最小栈中栈顶元素和当前插入元素的大小
minStack.push(minStack.isEmpty() ? node : Math.min(minStack.peek(),node));
}
public void pop() {
stack.pop();
minStack.pop();
}
public int top() {
return stack.peek();
}
public int min() {
//取得栈顶元素即为栈中最小元素
return minStack.peek();
}