Flatten Binary Tree to Linked List

In-place pointer rewiring into preorder right chain

Read Here
Step0/21
Chain Size0
Preorder Ptr0
Back To Trees List

Python Code

4
5 while curr:
if curr.left:
7 pred = curr.left
......
9 pred = pred.right
10 pred.right = curr.right
11 curr.right = curr.left
12 curr.left = None
13 curr = curr.right
Current Line (6): Check left subtree

Tree Structure

123456
Operation:Visit Node

Flatten Progress

Preorder Ptr

0

Chain Length

0

Target Preorder

Flattened chain should match preorder traversal:

[1, 2, 3, 4, 5, 6]

Current Right Chain

Flattened chain appears here...
Step 1: Visit Node

Flatten Stack

Stack is empty. Click Next to begin!

Step Explanation

Line 6: pick_root

Visit node 1 in preorder chain

  • > Meaning: Only nodes with left child need rewiring.
  • > Why: If left is absent, structure already respects linked-list form locally.
  • > Next: Find predecessor in left subtree.
  • > Progress snapshot: 0/21 steps, chain size 0.
Unvisited
Left
Current
Right
Done