находятся в O (N).

приведен мой алгоритм поиска первого общего предка. Но я не знаю, как рассчитать сложность времени, кто-нибудь может помочь?

public Tree commonAncestor(Tree root, Tree p, Tree q) {
    if (covers(root.left, p) && covers(root.left, q))
        return commonAncestor(root.left, p, q);
    if (covers(root.right, p) && covers(root.right, q))
        return commonAncestor(root.right, p, q);
    return root;
}
private boolean covers(Tree root, Tree p) { /* is p a child of root? */
    if (root == null) return false;
    if (root == p) return true;
    return covers(root.left, p) || covers(root.right, p);
}

Ответы на вопрос(2)

Ваш ответ на вопрос