Bird
Raised Fist0
Data Structures Theoryknowledge~10 mins

Inorder traversal gives sorted order in Data Structures Theory - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print the nodes of a binary search tree in sorted order using inorder traversal.

Data Structures Theory
def inorder_traversal(node):
    if node is not None:
        inorder_traversal(node.left)
        print(node[1])
        inorder_traversal(node.right)
Drag options to blanks, or click blank then click option'
A.value
B.val
C.key
D.data
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect attribute names like .val or .key which may not exist.
Printing the node object directly instead of its value.
2fill in blank
medium

Complete the code to collect the inorder traversal result in a list instead of printing.

Data Structures Theory
def inorder_collect(node, result):
    if node is not None:
        inorder_collect(node.left, result)
        result.append(node[1])
        inorder_collect(node.right, result)
Drag options to blanks, or click blank then click option'
A.val
B.value
C.data
D.key
Attempts:
3 left
💡 Hint
Common Mistakes
Appending the node object instead of its value.
Using wrong attribute names causing errors.
3fill in blank
hard

Fix the error in the inorder traversal code that causes incorrect order by completing the blank.

Data Structures Theory
def inorder_traversal(node):
    if node is not None:
        inorder_traversal(node.right)
        print(node[1])
        inorder_traversal(node.left)
Drag options to blanks, or click blank then click option'
A.value
B.val
C.data
D.key
Attempts:
3 left
💡 Hint
Common Mistakes
Visiting right subtree before left causing descending order output.
Using wrong attribute names for node data.
4fill in blank
hard

Fill both blanks to create a dictionary comprehension that maps each node's value to its depth during inorder traversal.

Data Structures Theory
depth_map = {node[1]: depth for node, depth in nodes if node[2]
Drag options to blanks, or click blank then click option'
A.value
Bis not None
C!= None
D.val
Attempts:
3 left
💡 Hint
Common Mistakes
Using != None instead of is not None which is less preferred.
Using wrong attribute names for node values.
5fill in blank
hard

Fill all three blanks to create a dictionary comprehension that stores node values as keys and their depths as values, filtering only nodes with values greater than 10.

Data Structures Theory
depth_map = {node[1]: depth for node, depth in nodes if node[2] [3] 10}
Drag options to blanks, or click blank then click option'
A.value
Bvalue
C>
D>=
Attempts:
3 left
💡 Hint
Common Mistakes
Using inconsistent attribute names in keys and condition.
Using wrong comparison operators like >= when only greater than is needed.

Practice

(1/5)
1. What is the main result of performing an inorder traversal on a binary search tree (BST)?
easy
A. It visits nodes randomly.
B. It visits nodes in descending sorted order.
C. It visits only leaf nodes.
D. It visits nodes in ascending sorted order.

Solution

  1. Step 1: Understand inorder traversal definition

    Inorder traversal visits the left child, then the node itself, then the right child.
  2. Step 2: Apply inorder traversal to BST property

    Since BST nodes have smaller values on the left and larger on the right, inorder traversal visits nodes in ascending order.
  3. Final Answer:

    It visits nodes in ascending sorted order. -> Option D
  4. Quick Check:

    Inorder traversal = ascending order [OK]
Hint: Inorder on BST always gives sorted ascending list [OK]
Common Mistakes:
  • Confusing inorder with preorder or postorder
  • Thinking traversal visits nodes randomly
  • Assuming it visits nodes in descending order
2. Which of the following is the correct sequence of steps in an inorder traversal of a binary tree?
easy
A. Visit left child, then node, then right child
B. Visit node, then left child, then right child
C. Visit right child, then node, then left child
D. Visit left child, then right child, then node

Solution

  1. Step 1: Recall inorder traversal order

    Inorder traversal means visiting the left subtree first, then the node, then the right subtree.
  2. Step 2: Match the correct sequence

    Visit left child, then node, then right child matches this order exactly: left child, node, right child.
  3. Final Answer:

    Visit left child, then node, then right child -> Option A
  4. Quick Check:

    Inorder = left, node, right [OK]
Hint: Inorder = left subtree, node, right subtree [OK]
Common Mistakes:
  • Mixing up preorder and inorder sequences
  • Visiting node before left child
  • Visiting right child before node
3. Given the BST below, what is the output of an inorder traversal?
      10
     /  \
    5    15
   / \     \
  3   7     20
medium
A. [20, 15, 10, 7, 5, 3]
B. [10, 5, 3, 7, 15, 20]
C. [3, 5, 7, 10, 15, 20]
D. [5, 3, 7, 10, 15, 20]

Solution

  1. Step 1: Perform inorder traversal on the BST

    Visit left subtree (3, 5, 7), then root (10), then right subtree (15, 20).
  2. Step 2: Write nodes in visited order

    The order is 3, 5, 7, 10, 15, 20.
  3. Final Answer:

    [3, 5, 7, 10, 15, 20] -> Option C
  4. Quick Check:

    Inorder traversal output = sorted ascending list [OK]
Hint: Inorder traversal of BST = sorted ascending values [OK]
Common Mistakes:
  • Listing nodes in preorder or postorder instead
  • Confusing left and right subtree order
  • Forgetting to include all nodes
4. A student wrote this inorder traversal code but it does not print nodes in sorted order for a BST. What is the mistake?
def inorder(node):
    if node:
        inorder(node.right)
        print(node.value)
        inorder(node.left)
medium
A. The function visits right child before left child, reversing order.
B. The function misses printing the node value.
C. The function does not check if node is None.
D. The function should print before visiting children.

Solution

  1. Step 1: Analyze the traversal order in code

    The code visits right child first, then node, then left child, which is reverse of inorder.
  2. Step 2: Understand effect on BST traversal

    This reversed order prints nodes in descending order, not ascending sorted order.
  3. Final Answer:

    The function visits right child before left child, reversing order. -> Option A
  4. Quick Check:

    Inorder must visit left before right [OK]
Hint: Inorder visits left child before right child [OK]
Common Mistakes:
  • Swapping left and right subtree calls
  • Printing node value in wrong place
  • Not checking for null node
5. You have a binary tree that is not a BST. You perform an inorder traversal and get the sequence [4, 2, 5, 1, 6]. Which of the following is true?
hard
A. The tree is a BST because inorder traversal is sorted.
B. The tree is not a BST because inorder traversal is not sorted.
C. Inorder traversal always gives sorted order regardless of tree type.
D. The tree must be balanced to get this sequence.

Solution

  1. Step 1: Check if inorder traversal sequence is sorted

    The sequence [4, 2, 5, 1, 6] is not in ascending order.
  2. Step 2: Understand BST property and inorder traversal

    In a BST, inorder traversal always produces a sorted ascending sequence. Since this is not sorted, the tree is not a BST.
  3. Final Answer:

    The tree is not a BST because inorder traversal is not sorted. -> Option B
  4. Quick Check:

    Inorder sorted = BST; not sorted = not BST [OK]
Hint: Inorder sorted? Yes BST; No not BST [OK]
Common Mistakes:
  • Assuming inorder always sorts any tree
  • Confusing balanced tree with BST
  • Ignoring order of traversal output