Skip to content
Binary TreesMedium

20. Build Tree from Preorder + Inorder ⭐

Reconstructs unique binary tree using Preorder[0] as root and Inorder to split left and right subtrees.

Time O(n) Space O(n)
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

AtlassianShopifyLinkedIn

Reference implementation (Python)

def build_tree(preorder, inorder):
    if not preorder or not inorder: return None
    root_val = preorder[0]
    root = TreeNode(root_val)
    mid = inorder.index(root_val)
    root.left = build_tree(preorder[1:mid+1], inorder[:mid])
    root.right = build_tree(preorder[mid+1:], inorder[mid+1:])
    return root

Embed this visualization

Drop a live, looping 20. Build Tree from Preorder + Inorder ⭐ canvas into a blog post or course page.

<iframe src="/embed/build-tree-pre-in" 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 20. Build Tree from Preorder + Inorder ⭐?

20. Build Tree from Preorder + Inorder ⭐ runs in O(n) time and O(n) auxiliary space.

Is the 20. Build Tree from Preorder + Inorder ⭐ 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 20. Build Tree from Preorder + Inorder ⭐ in interviews?

20. Build Tree from Preorder + Inorder ⭐ shows up in interviews at Atlassian, Shopify, LinkedIn.

How does the 3D visualization of 20. Build Tree from Preorder + Inorder ⭐ 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