public int Pop() { int value = top.Value; top = top.Next; return(value); }
public void Push(int value) { var newNode = new StackWithMinNode() { Value = value, }; if (top == null) { top = newNode; newNode.MinBeneathMe = newNode; return; } newNode.Next = top; newNode.MinBeneathMe = value >= top.MinBeneathMe.Value ? top.MinBeneathMe : newNode; top = newNode; }