Проблема в вашем базовом случае.
«Высота дерева - это длина пути от корня до самого глубокого узла дерева. Дерево (с корневым доступом), имеющее только узел (корень), имеет высоту ноль» - Википедия
Если узла нет, вы хотите вернуть -1, а не 0. Это потому, что вы добавляете 1 в конце.
Так что, если нет узла, вы возвращаете -1, что отменяет + 1.
int findHeight(TreeNode<T> aNode) {
if (aNode == null) {
return -1;
}
int lefth = findHeight(aNode.left);
int righth = findHeight(aNode.right);
if (lefth > righth) {
return lefth + 1;
} else {
return righth + 1;
}
}