Tower of Hanoi simulation
Use java.util.Deque

Instead of implementing your own stack,
it's better and easier to use the Deque in the JDK.
(Not Stack, as the JavaDoc explains, Deque is recommended.
Thanks @greybeard for the tip!)

Naming

In this game there are discs and towers (or sticks, rods, pegs).
It would be better to call them that way instead of Node and Stack.

tower is a poor name for moving discs.
In general, verbs are best for method names.
In this example move would be natural.

Alternative implementation

With the above suggestions applied,
the implementation becomes:

import java.util.ArrayDeque;
import java.util.Deque;

public class Hanoi {

    private static class Tower {

        private final String name;
        private final Deque&lt;Integer&gt; stack;

        public Tower(String name) {
            this.name = name;
            this.stack = new ArrayDeque&lt;&gt;();
        }

        public void add(int... discs) {
            for (int disc : discs) {
                stack.push(disc);
            }
        }

        public int size() {
            return stack.size();
        }

        public void moveOneDisc(Tower to) {
            System.out.println("Pushed " + this.stack.peek() + " from " + this.name + " to " + to.name);
            to.stack.push(this.stack.pop());
        }

        private void moveDiscs(int count, Tower mid, Tower to) {
            if (count == 1) {
                moveOneDisc(to);
            } else {
                moveDiscs(count - 1, to, mid);
                moveOneDisc(to);
                mid.moveDiscs(count - 1, this, to);
            }
        }
    }

    public static void main(String[] args) {
        Tower from = new Tower("A");
        from.add(10, 15, 20, 25);
        Tower mid = new Tower("B");
        Tower to = new Tower("C");
        from.moveDiscs(from.size(), mid, to);
    }
}


Some other improvements:


Moved the tower method inside the Tower class and renamed to move
Tower.add accepts varargs, for conveniently adding multiple discs
Tower.size to know the number of discs on a tower
The method names of Tower are all in the language of the problem domain, not the implementation (implementation details are well hidden)