Skip to main content

Lowest Common Ancestor of BST

MediumTrees

Given a binary search tree (BST) and two node values p and q, find the lowest common ancestor (LCA) of the two nodes. Return the value of the LCA node.

The lowest common ancestor is the deepest node that has both p and q as descendants (a node can be a descendant of itself).

The tree is represented as a nested object: { val: 6, left: { val: 2, ... }, right: { val: 8, ... } }

Example 1:

Input: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
        6
       / \
      2   8
     / \ / \
    0  4 7  9
      / \
     3   5
Output: 6
Explanation: The LCA of nodes 2 and 8 is 6.

Example 2:

Input: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
Output: 2
Explanation: The LCA of nodes 2 and 4 is 2, since a node can be a descendant of itself.

Constraints:

  • 2 <= number of nodes <= 10^5
  • All node values are unique
  • p != q
  • Both p and q exist in the BST