class BinaryNode<T> {
    T data;
    BinaryNode<T> left, right; // may be null
}
