155. 最小栈

1.底层使用链表,每个链表头部节点都存储当前结构里的最小值。
public class MinStack {Node head;public MinStack() {}public void push(int val) {if (head == null) {head = new Node(val, val);} else {Node node = new Node(val, Math.min(val, head.min), head);head = node;}}public void pop() {head = head.next;}public int top() {return head.val;}public int getMin() {return head.min;}private class Node {int val;int min;Node next;public Node(int val, int min, Node next) {this.val = val;this.min = min;this.next = next;}public Node(int val, int min) {this.val = val;this.min = min;}}}
