To understand the problem with the code you tried, consider what would happen if you Ewere, say Integer,?
You can do what you want with nodes that contain common data:
public class Node<T> {
T data;
}
Then you can define subclasses:
public class ThreadedTreeNode<T> extends Node<T> {
}