Вы должны рекурсировать, вместо того, чтобы идти вниз, чтобы сравнить влево:
private static BinaryTreeNode insert(BinaryTreeNode current, String word) {
if (current == null) {
current = new BinaryTreeNode(word);
} else {
int test = word.compareToIgnoreCase(current.value);
if (test < 0) {
current.left = insert(current.left, word);
} else if (test > 0) {
current.right = insert(current.right, word);
}
// else word already at this node!
}
return current;
}
Обратите внимание, что функция должна быть статической, поскольку она не зависит от this
.