Получение 3-х неудачных тестов при запуске LowestCommonAncestor для BST
Не уверен, что мне не хватает некоторых утверждений if. Мой профессор сказал мне использовать вспомогательный метод для рекурсии.
Ошибки:
1. Когда v1 или v2 является родителем другого.
2. Когда Root - это LCA.
3. Когда у родителей обоих есть ДМС.
КОД:
public int lowestCommonAncestor(int v1, int v2)
{
Node curr = root;
if (!contains(v1) || !contains(v2)) {
throw new IllegalArgumentException("One or both values are not in the tree.");
}
if (curr.data > Math.max(v1, v2)) {
return lca(curr.left, v1, v2).data;
}
if (curr.data < Math.max(v1, v2)) {
return lca(curr.right, v1, v2).data;
}
else {
return curr.data;
}
}
public Node lca(Node curr, int v1, int v2) {
if(curr.data > Math.max(v1, v2)) {
return lca(curr.left, v1, v2);
}
if (curr.data < Math.max(v1, v2)) {
return lca(curr.right, v1, v2);
}
else {
return curr;
}
}