У меня есть двоичное дерево поиска, и я хочу удалить узел.Как вернуть ничего из функции, возвращающей значение?
мне нужно, чтобы получить его родителей, так что я написал функцию:
private BSTreeNode<T> getParent(BSTreeNode<T> root, BSTreeNode<T> node) {
if(root == null)
return null;
if(node.element().lessThan(root.element())) {
if(root.getLeft() != null && root.getLeft().element().equal(node.element()))
return root;
else
getParent(root.getLeft(), node);
} else {
if(root.getRight() != null && root.getRight().element().equal(node.element()))
return root;
else
getParent(root.getRight(), node);
}
}
В отличие от C/C++, Java дает мне следующее сообщение об ошибке:
This method must return a result of type BSTreeNode<T>
Это заставляет меня возвращать значение в последней строке функции.
Как исправить это в контексте моей функции?
Использовать 'return getParent ...' –
@SotiriosDelimanolis и использовать какие параметры? – Billie
Я не знаю, это часть вашего дизайна. Дело в том, что ваш метод всегда должен возвращать что-то, если ваш тип возврата отличается от 'void'. –