转载请标明出处http://www.cnblogs.com/haozhengfei/p/68c25fbc949e663f5bb8627a764158f8.html
import java.util.Stack;
public class Solution {
private Stack<Integer> stackData = new Stack<>();
private Stack<Integer> stackMin = new Stack<>();
public void push(int node) {
//将当前元素压入栈
stackData.push(node);
/**
* 如果最小栈为空,那么直接压入
* 否则如果当前元素小于stackMin的顶部元素,直接压入,大于就继续压入stackMin的顶部元素
*/
if(stackMin.isEmpty()){
stackMin.push(node);
} else {
if (node < stackMin.peek().intValue()) {
}
else{
stackMin.push(stackMin.peek());
public void pop() {
stackData.pop();
stackMin.pop();
public int top() {
return stackData.peek();
public int min() {
return stackMin.peek();