Master the Paths ofBinary Tree TraversalDepth-First (DFS), Breadth-First (BFS) & Recursion
|
0Core Topics
0Practice Checks
0Interactive Quiz
Your Progress: 0/8 Topics
Completed
01
Introduction to Tree Traversals
A Binary Tree is a hierarchical, non-linear
data structure where each node has at most two children,
referred to as the left child and the right child. Unlike linear
structures (arrays, linked lists) which have a single logical
way to iterate, trees can be traversed in several different
ways.
Tree Traversal is the process of visiting every
node in the tree exactly once. Traversals are generally divided
into two main categories:
Depth-First Search (DFS): Recursively
explores paths as deep as possible before backtracking.
Includes: Preorder, Inorder,
and Postorder traversals.
Breadth-First Search (BFS): Visits nodes
level-by-level, starting from the root. Includes:
Level-Order traversal.
Practice: Traversal Styles
Which category of traversal visits all nodes on level 1 before
visiting nodes on level 2?
Explanation: BFS processes nodes layer-by-layer
(level-by-level), whereas DFS goes down a single path to a
leaf node before returning to process other sibling
branches.
02
Preorder Traversal (Root → Left → Right)
In Preorder Traversal, the node is processed
before (pre) traversing its left and right subtrees.
Steps of Preorder Traversal
Visit the Root node.
Recursively traverse the Left subtree.
Recursively traverse the Right subtree.
Preorder traversal is commonly used to create a copy of the tree
or to serialize a expression tree structure into prefix
notation.
Pseudocode (Recursive)
functionpreorder(Node root)
ifrootisnullthen returnvisit(root)
preorder(root.left)
preorder(root.right)
end function
Practice: Preorder Trace
For a tree with root node `A`, left child `B`, and right child
`C`, what is the Preorder traversal order?
Answer: A → B → C
Explanation: Preorder visits the root (`A`), then traverses
the left subtree (`B`), and then the right subtree (`C`).
03
Inorder Traversal (Left → Root → Right)
In Inorder Traversal, the node is processed
in-between (in) traversing its left and right subtrees.
Steps of Inorder Traversal
Recursively traverse the Left subtree.
Visit the Root node.
Recursively traverse the Right subtree.
In a Binary Search Tree (BST), executing an
inorder traversal visits the nodes in **strictly ascending
sorted order**. This is one of the most useful properties of
BSTs.
Pseudocode (Recursive)
functioninorder(Node root)
ifrootisnullthen returninorder(root.left)
visit(root)
inorder(root.right)
end function
Practice: Inorder Sorted
True or False: Performing an Inorder traversal on any binary
tree always yields a sorted sequence of keys.
Answer: False
Explanation: This sorting property is exclusive to Binary
Search Trees (BSTs), where left keys are smaller than root,
and right keys are larger. It does not apply to general
binary trees.
04
Postorder Traversal (Left → Right → Root)
In Postorder Traversal, the node is processed
after (post) traversing both its left and right
subtrees.
Steps of Postorder Traversal
Recursively traverse the Left subtree.
Recursively traverse the Right subtree.
Visit the Root node.
Postorder traversal is commonly used in deleting/freeing a tree
(since you must delete children before deleting the parent) or
for calculating the size/height of subtrees bottom-up.
Pseudocode (Recursive)
functionpostorder(Node root)
ifrootisnullthen returnpostorder(root.left)
postorder(root.right)
visit(root)
end function
Practice: Deletion Usage
Why is postorder traversal preferred when deleting a tree from
memory?
Answer: Bottom-up deletion
Explanation: If you delete the root node first (preorder),
you lose references to the left and right children, causing
memory leaks. Postorder ensures children are freed before
parent nodes.
05
Level-Order Traversal (Breadth-First Search)
Level-Order Traversal processes tree nodes
layer-by-layer (horizontally), starting from level 0 (root),
then level 1, and so on.
Since recursion uses a call stack (which behaves in a
Depth-First manner), Level-Order traversal must be implemented
iteratively using a **Queue data structure** (First-In,
First-Out).
Queue-Based BFS Steps
Create an empty queue and enqueue the **Root** node.
Loop while the queue is not empty:
Dequeue a node and visit/process it.
Enqueue the dequeued node's **Left child** (if exists).
Enqueue the dequeued node's **Right child** (if exists).
Pseudocode (Iterative Queue)
functionlevelOrder(Node root)
ifrootisnullthen returnQueueq = newQueue()
q.enqueue(root)
whileqis notemptyNodecurr = q.dequeue()
visit(curr)
ifcurr.leftis notnullthenq.enqueue(curr.left)
end ififcurr.rightis notnullthenq.enqueue(curr.right)
end ifend whileend function
Practice: Data Structure
Which data structure is essential to perform Level-Order
traversal iteratively?
Answer: Queue (FIFO)
Explanation: A Queue ensures that nodes are processed in the
order they are discovered, yielding a level-by-level
breadth-first visit pattern.
06
Tracing Traversal Paths
Below is a visual binary tree. Use it to trace the different
path structures:
Traces of the Above Tree:
Preorder (Root-L-R):1 → 2 → 4 → 5 → 3
Inorder (L-Root-R):4 → 2 → 5 → 1 → 3
Postorder (L-R-Root):4 → 5 → 2 → 3 → 1
Level-Order (BFS):1 → 2 → 3 → 4 → 5
Practice: Tree Tracing
In Inorder traversal of the diagrammed tree above, which node
is visited immediately after node `5`?
Answer: 1
Explanation: Inorder visits left branch of 1 first (which
traces `4 → 2 → 5`). Once the left branch is complete, it
backtracks and processes the root node, which is `1`.
07
Comprehensive Exercises
Analyze the binary trees described in the scenarios below to
solve the traversal outputs.
Exercise 1: Reconstructing
Trees
Scenario: You are given the Preorder traversal
[A, B, D, E, C] and Inorder traversal
[D, B, E, A, C]. Reconstruct the tree and
identify the root's right child.
Solution: Node C
Explanation: The first node in preorder is always the root,
which is `A`. Looking at the inorder traversal, elements to
the left of `A` (`D, B, E`) are in the left subtree, and
elements to the right (`C`) are in the right subtree. Thus,
`C` is the right child of the root.
Exercise 2: Binary Search Tree
Property
Scenario: A Binary Search Tree is created by inserting the
keys [15, 10, 20, 8, 12]. What sequence is output
by performing an Inorder traversal?
Solution: 8 → 10 → 12 → 15 → 20
Explanation: Inorder traversal on any valid BST always
yields a sorted sequence of values in ascending order.
08
Quiz & Knowledge Check
Test your understanding of Binary Tree traversals:
Q1.An inorder traversal executed on a BST always returns
keys in what arrangement?
Explanation: Inorder traversal visits left-root-right. By
definition of a BST, all left child keys are smaller than
root, and right keys are larger, yielding sorted output.
Q2.In preorder traversal, which node in any subtree is
processed first?
Explanation: Preorder visits root first, then left subtree,
then right subtree (Root-Left-Right).
Q3.What is the traversal sequence rule for Postorder?
Explanation: Postorder processes children subtrees before
the root node, following Left → Right → Root (LRD).
Q4.What helper data structure is required to perform
Level-Order traversal iteratively?
Explanation: Level-order (BFS) requires a Queue to process
nodes in FIFO order level-by-level.
Q5.Which DFS traversal style processes the root node of the
entire tree last?
Explanation: Postorder visits Left, then Right, and
processes Root last (Left → Right → Root).