Question

    Consider a Binary Search Tree (BST) where every node stores a key and two child pointers. What is the time complexity of finding the Lowest Common Ancestor (LCA) of two nodes in a balanced BST with n nodes? 

    A O(n) Correct Answer Incorrect Answer
    B O(log n) Correct Answer Incorrect Answer
    C O(n log n) Correct Answer Incorrect Answer
    D O(1) Correct Answer Incorrect Answer
    E O(n²) Correct Answer Incorrect Answer

    Solution

    The time complexity of finding the LCA in a balanced BST is O(log n). A Binary Search Tree (BST) ensures that, for every node, all values in its left subtree are smaller, and all values in its right subtree are larger. To find the LCA of two nodes, you can perform a binary search, comparing the node values with the LCA candidates and traversing left or right subtrees based on comparisons. As the height of a balanced BST is log n, finding the LCA involves a traversal that follows the height of the tree, thus resulting in a time complexity of O(log n). Why Other Options are Incorrect: A) O(n): This is the time complexity of finding the LCA in an unbalanced BST, not a balanced one. C) O(n log n): This time complexity is typically associated with certain sorting algorithms, not BST operations. D) O(1): This is incorrect because finding the LCA requires traversal in a balanced BST. E) O(n² ): This time complexity is associated with certain algorithms in dynamic programming, not for BST operations.

    Practice Next

    Relevant for Exams: