Bird
Raised Fist0
DSA Pythonprogramming~10 mins

Tree Traversal Inorder Left Root Right in DSA Python - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to visit the left subtree first in inorder traversal.

DSA Python
def inorder(node):
    if node is not None:
        inorder(node.[1])
        print(node.val, end=' -> ')
        inorder(node.right)
Drag options to blanks, or click blank then click option'
Aparent
Bright
Cleft
Droot
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'right' instead of 'left' causes wrong traversal order.
2fill in blank
medium

Complete the code to print the current node's value in inorder traversal.

DSA Python
def inorder(node):
    if node is not None:
        inorder(node.left)
        print(node.[1], end=' -> ')
        inorder(node.right)
Drag options to blanks, or click blank then click option'
Aleft
Bval
Cright
Ddata
Attempts:
3 left
💡 Hint
Common Mistakes
Printing 'left' or 'right' instead of the node's value.
3fill in blank
hard

Fix the error in the inorder traversal code to correctly visit the right subtree.

DSA Python
def inorder(node):
    if node is not None:
        inorder(node.left)
        print(node.val, end=' -> ')
        inorder(node.[1])
Drag options to blanks, or click blank then click option'
Aparent
Bleft
Croot
Dright
Attempts:
3 left
💡 Hint
Common Mistakes
Visiting 'left' again instead of 'right' causes infinite recursion or wrong order.
4fill in blank
hard

Fill both blanks to complete the recursive inorder traversal function.

DSA Python
def inorder(node):
    if node is not None:
        inorder(node.[1])
        print(node.[2], end=' -> ')
        inorder(node.right)
Drag options to blanks, or click blank then click option'
Aleft
Bval
Cright
Ddata
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping left and right or printing wrong attributes.
5fill in blank
hard

Fill all three blanks to create a dictionary comprehension that maps node values to their inorder positions if values are greater than 10.

DSA Python
positions = {node.[1]: index for index, node in enumerate(nodes) if node.[2] [3] 10}
Drag options to blanks, or click blank then click option'
Aval
C>
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong attribute names or wrong comparison operators.

Practice

(1/5)
1. What is the order of nodes visited in an inorder traversal of a binary tree?
easy
A. Root, Left subtree, Right subtree
B. Root, Right subtree, Left subtree
C. Right subtree, Root, Left subtree
D. Left subtree, Root, Right subtree

Solution

  1. Step 1: Understand inorder traversal definition

    Inorder traversal visits nodes in the order: left subtree first, then root node, then right subtree.
  2. Step 2: Apply the order to the tree nodes

    This means we first explore all nodes in the left subtree, then the root, then the right subtree.
  3. Final Answer:

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

    Inorder = Left, Root, Right [OK]
Hint: Remember: Inorder means Left, Root, then Right [OK]
Common Mistakes:
  • Confusing inorder with preorder or postorder
  • Visiting root before left subtree
  • Visiting right subtree before root
2. Which of the following Python function definitions correctly implements inorder traversal of a binary tree node root?
easy
A. def inorder(root): if root: inorder(root.left) print(root.val) inorder(root.right)
B. def inorder(root): if root: print(root.val) inorder(root.left) inorder(root.right)
C. def inorder(root): if root: inorder(root.right) print(root.val) inorder(root.left)
D. def inorder(root): if root: inorder(root.right) inorder(root.left) print(root.val)

Solution

  1. Step 1: Recall inorder traversal order

    Inorder visits left subtree, then root, then right subtree.
  2. Step 2: Match code to order

    def inorder(root): if root: inorder(root.left) print(root.val) inorder(root.right) calls inorder on left, prints root value, then calls inorder on right, matching inorder traversal.
  3. Final Answer:

    Option A code correctly implements inorder traversal -> Option A
  4. Quick Check:

    Left, Root, Right order in code [OK]
Hint: Inorder: recursive left call, print root, recursive right call [OK]
Common Mistakes:
  • Printing root before left subtree call
  • Swapping left and right subtree calls
  • Missing base case check for None
3. Given the binary tree below, what is the output of inorder traversal?

    2
   / \
  1   3
class Node: def __init__(self, val): self.val = val self.left = None self.right = None def inorder(root): if root: inorder(root.left) print(root.val, end=' ') inorder(root.right) root = Node(2) root.left = Node(1) root.right = Node(3) inorder(root)
medium
A. 1 2 3
B. 2 1 3
C. 3 2 1
D. 1 3 2

Solution

  1. Step 1: Trace inorder traversal on given tree

    Start at root (2), first visit left subtree (1), print 1, then print root 2, then visit right subtree (3), print 3.
  2. Step 2: Write output sequence

    The printed sequence is: 1 2 3.
  3. Final Answer:

    1 2 3 -> Option A
  4. Quick Check:

    Inorder output = 1 2 3 [OK]
Hint: Inorder prints nodes in ascending order for BST [OK]
Common Mistakes:
  • Printing root before left subtree
  • Swapping left and right subtree outputs
  • Confusing preorder or postorder output
4. The following code is intended to perform inorder traversal but produces no output. What is the error?

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

def inorder(root):
    inorder(root.left)
    print(root.val, end=' ')
    inorder(root.right)

root = Node(1)
inorder(root)
medium
A. The root node is never created
B. The print statement is outside the function
C. The base case is missing; should check if root is None first
D. The function calls right subtree before printing root

Solution

  1. Step 1: Analyze base case in inorder function

    The function checks root.left and root.right but never checks if root itself is None, which causes errors or no output if root is None.
  2. Step 2: Identify missing base case effect

    Without checking if root is None, the function may fail or skip printing when called with None, so adding if root is None: return fixes it.
  3. Final Answer:

    The base case is missing; should check if root is None first -> Option C
  4. Quick Check:

    Check root None before recursion [OK]
Hint: Always check if node is None before recursion [OK]
Common Mistakes:
  • Not checking if root is None before accessing attributes
  • Incorrect order of print and recursive calls
  • Forgetting to create root node before traversal
5. You have a binary tree where some nodes have only one child. Which inorder traversal output correctly represents the tree below?

      5
     / \
    3   8
     \    \
      4    9
Options: A) 3 5 4 8 9 B) 4 3 5 9 8 C) 3 4 5 8 9 D) 5 3 4 8 9
hard
A. 3 5 4 8 9
B. 3 4 5 8 9
C. 4 3 5 9 8
D. 5 3 4 8 9

Solution

  1. Step 1: Perform inorder traversal on given tree

    Start at root (5), visit left subtree: node 3 has no left child, so print 3, then visit right child 4, print 4. Then print root 5. Then visit right subtree: node 8 has no left child, print 8, then right child 9, print 9.
  2. Step 2: Write the output sequence

    The output is: 3 4 5 8 9.
  3. Final Answer:

    3 4 5 8 9 -> Option B
  4. Quick Check:

    Inorder visits left, root, right even if child missing [OK]
Hint: Inorder visits left subtree fully before root, even if missing nodes [OK]
Common Mistakes:
  • Skipping nodes with only one child
  • Printing root before left subtree
  • Confusing preorder or postorder output
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard