We don't care about the content of the node. The interesting part is how do you define the Node itself.
struct Node<T> { Node<T> left; Node<T> right; };
would obviously be the best choice (what I call in the article "raw value"). But it's not valid C++.