Skip to content
Binary TreesMedium

15. Lowest Common Ancestor (LCA) ⭐

Finds the deepest node that has both nodes p and q as descendants.

Time O(n) Space O(h)
Open in 3D Studio

Live loop — open the studio to scrub, add your own array, or race it in Battle Arena.

Asked in interviews at

AmazonAppleStripe

Reference implementation (Python)

def lowest_common_ancestor(root, p, q):
    if not root or root == p or root == q:
        return root
    left = lowest_common_ancestor(root.left, p, q)
    right = lowest_common_ancestor(root.right, p, q)
    if left and right:
        return root
    return left if left else right

Embed this visualization

Drop a live, looping 15. Lowest Common Ancestor (LCA) ⭐ canvas into a blog post or course page.

<iframe src="/embed/tree-lca" width="100%" height="380" style="border:1px solid #e6e8ec;border-radius:14px" loading="lazy" title="3D algorithm visualization by CodeWithMunnaX"></iframe>

Frequently asked

What is the time and space complexity of 15. Lowest Common Ancestor (LCA) ⭐?

15. Lowest Common Ancestor (LCA) ⭐ runs in O(n) time and O(h) auxiliary space.

Is the 15. Lowest Common Ancestor (LCA) ⭐ visualizer free?

The core 3D visualizer, Web Audio chimes and step intuition are free. A one-time ₹49 Pro Pass unlocks advanced algorithms, large custom arrays, Battle Arena and reel export.

Which companies ask 15. Lowest Common Ancestor (LCA) ⭐ in interviews?

15. Lowest Common Ancestor (LCA) ⭐ shows up in interviews at Amazon, Apple, Stripe.

How does the 3D visualization of 15. Lowest Common Ancestor (LCA) ⭐ work?

Each array value becomes a 3D pillar whose height maps to its value. Comparisons glow amber, swaps flash red, and settled elements lock green while a floating pointer badge tracks the active index — synchronized line-by-line with the Python code.

More Binary Trees