Skip to content
Binary TreesMedium

28. Binary Tree to Doubly Linked List

Converts binary tree in-place to doubly linked list where left pointer is prev and right pointer is next.

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

MicrosoftAppleBloomberg

Reference implementation (Python)

def b_tree_to_dll(root):
    head = prev = None
    def inorder(node):
        nonlocal head, prev
        if not node: return
        inorder(node.left)
        if not prev: head = node
        else:
            prev.right = node
            node.left = prev
        prev = node
        inorder(node.right)
    inorder(root)
    return head

Embed this visualization

Drop a live, looping 28. Binary Tree to Doubly Linked List canvas into a blog post or course page.

<iframe src="/embed/tree-to-dll" 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 28. Binary Tree to Doubly Linked List?

28. Binary Tree to Doubly Linked List runs in O(n) time and O(h) auxiliary space.

Is the 28. Binary Tree to Doubly Linked List 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 28. Binary Tree to Doubly Linked List in interviews?

28. Binary Tree to Doubly Linked List shows up in interviews at Microsoft, Apple, Bloomberg.

How does the 3D visualization of 28. Binary Tree to Doubly Linked List 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