I would use unique_ptr to manage Node lifetimes, one caveat here is performance may be slightly suboptimal on Stack destruction due to the recursive destructor calls. I'd also make Node a private nested struct in Stack since it's an implementation detail. Since t is a sink parameter to the Node constructor I'dyou could take it by value and std::move it into place but since you're the only one using the Node constructor you can save a possible extra move by making the parameter T&& t.
If you use unique_ptr to manage Node lifetimes and C++11 member initialization for n you can make your default constructor =default= default.
Stack::push() should take its argument by value for the same reason as the Node construtor, it's a sink argument. In this case you could avoid a possible extra move by providing both push(const T&) and push(T&&) overloads but taking by value is simpler.