5.Lowest Common Ancestor of a Binary Search Tree
Last updated
Last updated
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.
According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes p
and q
as the lowest node in T
that has both p
and q
as descendants (where we allow a node to be a descendant of itself).”
Example 1:
Example 2:
Example 3:
Approach:
Store the path till the elements and then compare the paths
Time Complexity: O(h) but uses an extra space of O(n)
Efficient Approach:
If both the elements are greater move to right subtree
If both the elements are smaller move to left subtree
If one if smaller and one is greater then the current node is LCA
If one of the value is found then that node is the LCA
Time Complexity: O(h) i.e O(log (n)) .