public void push(int data){
        if(head == null){
            head = Node.newNode(data);
            middle = head;
            size++;
            return;
        }
        size++;
        Node node = Node.newNode(data);
        node.next = head;
        head.before = node;
        head = node;
        if(size % 2 ==0){
            middle = middle.before;
        }
    }
http://www.geeksforgeeks.org/design-a-stack-with-find-middle-operation/
Test cases:
Delete middle with 1,2,3 element
Pop with 1,2,3 elements
Delete or pop when empty stack
src/com/interview/linklist/StackWithLinkListMiddleOperation.java