Lowest Common Ancestor of a Binary Search Tree

Given a binary search tree (BST), find the lowest common ancestor (LCA) node of two given nodes p and q 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.”

Return the value of the LCA node.

Example 1
          6
        /   \
       2     8
      / \   / \
     0   4 7   9
        / \
       3   5
Inputroot = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
Output6
The LCA of nodes 2 and 8 is 6.
Example 2
          6
        /   \
       2     8
      / \   / \
     0   4 7   9
        / \
       3   5
Inputroot = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
Output2
The LCA of nodes 2 and 4 is 2, since a node can be a descendant of itself according to the LCA definition.

Constraints

  • The number of nodes in the tree is in the range [2, 10^5].
  • -10^9 <= Node.val <= 10^9
  • All Node.val are unique.
  • p != q
  • p and q will exist in the BST.

Asked at 10 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate