Develop

I'd create a sentinel node constant that is nonnull, that you can compare with simple reference equality:

`if (tree->left() == EMPTY)`

This is good because it's more specific than NULL and, if you accidentally reference one of its properties, you can get a level deeper before you accidentally segfault.  It also forces you to cleanly initialize to EMPTY instead of NULL.