题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
建一个辅助栈,把每次最小最小的元素(之前最小元素,与当前新入栈的元素比较)放在辅助栈里。
1 import java.util.Stack; 2 3 public class Solution { 4 Stack<Integer> stack = new Stack<Integer>(); 5 Stack<Integer> min = new Stack<Integer>(); 6 public void push(int node) { 7 if(stack.empty()){ 8 stack.push(node); 9 min.push(node); 10 } 11 else{ 12 if(node < min.peek()) 13 min.push(node); 14 else 15 min.push(min.peek()); 16 stack.push(node); 17 } 18 19 } 20 21 public void pop() { 22 stack.pop(); 23 min.pop(); 24 } 25 26 public int top() { 27 return stack.peek(); 28 } 29 30 public int min() { 31 return min.peek(); 32 } 33 }