Я пытаюсь написать код для отложенного удаления для деревьев двоичного поиска (поиск минимального значения). Я написал следующий код, но он дает мне неправильный ответ. Буду признателен, если кто-нибудь поможет мне понять, почему это не так.
private BinaryNode<AnyType> findMin( BinaryNode<AnyType> t )
{
if (t == null) {
return null;
} else {
if(t.left != null && !t.deleted) {
return findMin(t.left);
} else if (t.left == null && !t.deleted) {
return t;
} else {
return findMin(t.right);
}
}