Tree Traversal

Explore different ways to visit all nodes in a binary tree

Algorithm Code

Time: O(n) | Space: O(h)

1function preorderTraversal(node) {
2  if (node === null) return;
3  
4  // Visit root first
5  visit(node.value);
6  
7  // Traverse left subtree
8  preorderTraversal(node.left);
9  
10  // Traverse right subtree
11  preorderTraversal(node.right);
12}
13
14// Iterative approach
15function preorderIterative(root) {
16  if (!root) return [];
17  const stack = [root];
18  const result = [];
19  
20  while (stack.length > 0) {
21    const node = stack.pop();
22    result.push(node.value);
23    
24    // Push right first, then left
25    if (node.right) stack.push(node.right);
26    if (node.left) stack.push(node.left);
27  }
28  
29  return result;
30}

Algorithm Steps

Step 1 of 9

1

Initialize Preorder Traversal

Start preorder traversal from root node. Visit: Root → Left → Right

2

Visit Node 1

Visit root node 1 first (Preorder: Root → Left → Right).

3

Visit Node 2

Visit root node 2 first (Preorder: Root → Left → Right).

4

Visit Node 4

Visit root node 4 first (Preorder: Root → Left → Right).

5

Visit Node 5

Visit root node 5 first (Preorder: Root → Left → Right).

6

Visit Node 3

Visit root node 3 first (Preorder: Root → Left → Right).

7

Visit Node 6

Visit root node 6 first (Preorder: Root → Left → Right).

8

Visit Node 7

Visit root node 7 first (Preorder: Root → Left → Right).

9

Traversal Complete ✅

Preorder traversal result: [1, 2, 4, 5, 3, 6, 7]

Binary Tree

1Node 12Node 24Node 45Node 53Node 36Node 67Node 7

Preorder Result

No nodes visited yet

Traversal Order:

Root → Left Subtree → Right Subtree
Current Node
Visiting Node
Visited Node
Step 0 of 80%
0.25x4x