DSA Series Chapter 16 – LEVEL ORDER TRAVERSAL(BINARY TREE BFS)(Python Version)


 [Join Our Blog

DSA Series Chapter 16 – LEVEL ORDER TRAVERSAL(BINARY TREE BFS)(Python Version)

1. Level Order Traversal – Quick Recall

Definition:
Level Order Traversal visits nodes level by level from left to right, starting from the root.

Category:

  • Breadth First Search (BFS)


2. Binary Tree Used (Same as C Version)

            1
          /   \
         2     3
        / \
       4   5

Expected Output

1 2 3 4 5

3. Node Structure in Python

class Node:
    def __init__(self, data):
        self.data = data
        self.left = None
        self.right = None

4. Algorithm (Plain English)

  1. If the tree is empty, stop

  2. Create an empty queue

  3. Insert root node into the queue

  4. While queue is not empty:

    • Remove front node

    • Visit (print/process) the node

    • Insert left child (if exists)

    • Insert right child (if exists)


5. Python Program – Level Order Traversal (Using Queue)

Using collections.deque (Recommended)

from collections import deque

def level_order(root):
    if root is None:
        return

    queue = deque()
    queue.append(root)

    while queue:
        current = queue.popleft()
        print(current.data, end=" ")

        if current.left:
            queue.append(current.left)

        if current.right:
            queue.append(current.right)

6. Complete Executable Python Program

from collections import deque

class Node:
    def __init__(self, data):
        self.data = data
        self.left = None
        self.right = None

def level_order(root):
    if root is None:
        return

    queue = deque()
    queue.append(root)

    while queue:
        current = queue.popleft()
        print(current.data, end=" ")

        if current.left:
            queue.append(current.left)

        if current.right:
            queue.append(current.right)

# Tree creation
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)

print("Level Order Traversal:")
level_order(root)

Output

Level Order Traversal:
1 2 3 4 5

7. Dry Run (Queue Simulation)

Queue: [1]
Dequeue 1 → print 1 → enqueue 2, 3
Queue: [2, 3]
Dequeue 2 → print 2 → enqueue 4, 5
Queue: [3, 4, 5]
Dequeue 3 → print 3
Queue: [4, 5]
Dequeue 4 → print 4
Queue: [5]
Dequeue 5 → print 5
Queue empty → stop

8. Time and Space Complexity

Time Complexity

  • O(n) — each node visited once

Space Complexity

  • O(n) — queue may store up to all nodes of a level


9. Important Applications

  • Printing tree level by level

  • Finding height/levels of a tree

  • BFS-based tree problems


10. Common Student Mistakes

  • Using list instead of queue without proper dequeue handling

  • Forgetting to enqueue child nodes

  • Confusing BFS with DFS traversals


11. Practice Questions

  1. Write level order traversal for a left-skewed tree.

  2. Predict output for a tree with only right children.

  3. Modify level order traversal to print each level on a new line.

  4. Implement level order traversal without using deque.


ALSO CHECK 

DS(Data Structure) Python&C Edition

DSA Series Chapter 1 Time & Space Complexity ( C Edition)

DSA Series Chapter 2 Arrays  (C Version)


DSA Series Chapter 2 Arrays  (Python Version)

DSA Series Chapter 3 Strings (C Version)


DSA Series Chapter 3 Strings (Python Version)


DSA Series Chapter 4 Linked Lists (Python Version)


DSA Series Chapter 4 Linked Lists (C Version)


DSA Series Chapter 5 Stacks (Python Version)


DSA Series Chapter 5  Stacks  (C Version)




















DSA Series Chapter 13 - Binary Tree traversal, BFS, DFT/DFS, Preorder Traversal In Binary Tree



 

DSA Series Chapter 15 – POSTORDER TRAVERSAL (BINARY TREE)(Python Version)


DSA Series Chapter 15 – POSTORDER TRAVERSAL (BINARY TREE)(C Version)


DSA Series Chapter 16 – LEVEL ORDER TRAVERSAL(BINARY TREE BFS)(C Version)


DSA Series Chapter 16 – LEVEL ORDER TRAVERSAL(BINARY TREE BFS)(Python Version)








Tail Recursion Optimization: How Compilers Convert Recursion Into Iteration


Advanced Recursion: Memoization vs. Tabulation — The Deep Optimization Blueprint for Professionals


Advanced Sorting Algorithms: Merge Sort Internals — Merge Tree, Cache Behavior & Real Cost Analysis


Enjoyed this post? [Follow here] for daily coding insights.





Comments