Bird
Raised Fist0
Data Structures Theoryknowledge~5 mins

Tree traversals (inorder, preorder, postorder) in Data Structures Theory - Time & Space Complexity

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Time Complexity: Tree traversals (inorder, preorder, postorder)
O(n)
Understanding Time Complexity

When we visit all nodes in a tree using inorder, preorder, or postorder traversal, we want to know how the time needed grows as the tree gets bigger.

We ask: How does the number of steps change when the tree has more nodes?

Scenario Under Consideration

Analyze the time complexity of the following recursive inorder traversal.


function inorder(node) {
  if (node == null) return;
  inorder(node.left);
  visit(node);
  inorder(node.right);
}
    

This code visits every node in a binary tree once, in a left-root-right order.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Recursive calls to visit each node.
  • How many times: Once per node in the tree.
How Execution Grows With Input

Each node is visited exactly one time, so the total steps grow directly with the number of nodes.

Input Size (n)Approx. Operations
10About 10 visits
100About 100 visits
1000About 1000 visits

Pattern observation: The work grows in a straight line with the number of nodes.

Final Time Complexity

Time Complexity: O(n)

This means the time to complete the traversal grows directly in proportion to the number of nodes in the tree.

Common Mistake

[X] Wrong: "Tree traversals take longer because they visit nodes multiple times."

[OK] Correct: Each node is visited only once during traversal, so the time grows linearly, not more.

Interview Connect

Understanding tree traversal time helps you explain how algorithms handle data structures efficiently, a key skill in many coding challenges.

Self-Check

"What if the tree is very unbalanced, like a linked list? How would the time complexity change?"

Practice

(1/5)
1. Which tree traversal visits the root node first, then the left subtree, and finally the right subtree?
easy
A. Preorder traversal
B. Inorder traversal
C. Postorder traversal
D. Level order traversal

Solution

  1. Step 1: Understand preorder traversal order

    Preorder traversal visits nodes in the order: root, left subtree, right subtree.
  2. Step 2: Compare with other traversal types

    Inorder visits left, root, right; postorder visits left, right, root; level order visits level by level.
  3. Final Answer:

    Preorder traversal -> Option A
  4. Quick Check:

    Root first = Preorder [OK]
Hint: Root first means preorder traversal [OK]
Common Mistakes:
  • Confusing inorder with preorder
  • Thinking postorder visits root first
  • Mixing level order with preorder
2. Which of the following is the correct order of nodes visited in an inorder traversal?
easy
A. Left, Right, Root
B. Root, Left, Right
C. Left, Root, Right
D. Right, Root, Left

Solution

  1. Step 1: Recall inorder traversal definition

    Inorder traversal visits nodes in the order: left subtree, root, right subtree.
  2. Step 2: Match with given options

    Left, Root, Right matches the left, root, right order exactly.
  3. Final Answer:

    Left, Root, Right -> Option C
  4. Quick Check:

    Inorder = Left, Root, Right [OK]
Hint: Inorder always visits left subtree before root [OK]
Common Mistakes:
  • Mixing preorder and inorder orders
  • Assuming root is visited first in inorder
  • Confusing right subtree position
3. Given the binary tree:
    A
   / \
  B   C
 /    
D   E   F

What is the postorder traversal sequence?
medium
A. D, B, E, F, C, A
B. A, B, D, E, C, F
C. B, D, E, A, C, F
D. D, E, B, F, C, A

Solution

  1. Step 1: Understand postorder traversal

    Postorder visits left subtree, right subtree, then root node.
  2. Step 2: Traverse given tree in postorder

    Left subtree of A: B subtree -> D, E, B; Right subtree of A: C subtree -> F, C; Finally root A.
  3. Final Answer:

    D, B, E, F, C, A -> Option A
  4. Quick Check:

    Postorder = Left, Right, Root [OK]
Hint: Postorder ends with root node [OK]
Common Mistakes:
  • Visiting root too early
  • Mixing preorder and postorder
  • Skipping right subtree nodes
4. A student wrote the preorder traversal of a tree as A, B, D, E, C, F but the inorder traversal as D, B, E, A, F, C. What is the error in the inorder traversal?
medium
A. The root node A is missing in inorder traversal
B. The nodes F and C are swapped in inorder traversal
C. The left subtree nodes are incorrectly ordered
D. No error, both traversals are consistent

Solution

  1. Step 1: Analyze preorder traversal

    Preorder: root A, left subtree B with children D and E, right subtree C with child F.
  2. Step 2: Check inorder traversal order

    Inorder should be left subtree (D, B, E), root A, right subtree (C, F). Given is D, B, E, A, F, C but F and C order is swapped.
  3. Final Answer:

    The nodes F and C are swapped in inorder traversal -> Option B
  4. Quick Check:

    Inorder right subtree order matters [OK]
Hint: Inorder right subtree nodes must be in correct order [OK]
Common Mistakes:
  • Ignoring subtree order in inorder
  • Assuming preorder and inorder can differ arbitrarily
  • Missing root node in traversal
5. You have a binary tree where the inorder traversal is D, B, E, A, C, F and the preorder traversal is A, B, D, E, C, F. Which of the following postorder traversals is correct?
hard
A. F, C, D, E, B, A
B. B, D, E, F, C, A
C. D, B, E, C, F, A
D. D, E, B, F, C, A

Solution

  1. Step 1: Use preorder to identify root and subtrees

    Preorder starts with A (root), then B subtree (D, E), then C subtree (F).
  2. Step 2: Use inorder to confirm subtree nodes

    Inorder left subtree: D, B, E; right subtree: C, F.
  3. Step 3: Construct postorder traversal

    Postorder visits left subtree (D, E, B), right subtree (F, C), then root (A).
  4. Final Answer:

    D, E, B, F, C, A -> Option D
  5. Quick Check:

    Postorder = Left, Right, Root [OK]
Hint: Postorder ends with root after left and right subtrees [OK]
Common Mistakes:
  • Mixing preorder and postorder sequences
  • Swapping left and right subtree orders
  • Placing root before subtrees in postorder