Получение 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;
    }
}

0 ответов

Другие вопросы по тегам