Min Stack (155)
class MinStack {
Node head;
/** initialize your data structure here. */
public MinStack(){}
public void push(int x) {
if(head == null){
head = new Node(x, x, null);
}
else{
head = new Node(x, Math.min(x, head.min), head);
}
}
public void pop() {
head = head.next;
}
public int top() {
return head.data;
}
public int getMin() {
return head.min;
}
private class Node{
int data;
int min;
Node next;
public Node(int data, int min, Node next){
this.data = data;
this.min = min;
this.next = next;
}
}
}Last updated