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
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