Bird
Raised Fist0

In the recursive inorder traversal code below, which line contains a subtle bug that can cause a runtime error on certain inputs?

medium🐞 Bug Identification Q7 of Q15
Tree: Depth-First Search - Binary Tree Inorder Traversal
In the recursive inorder traversal code below, which line contains a subtle bug that can cause a runtime error on certain inputs? ```python def inorder(node): result = [] if node.left: result.extend(inorder(node.left)) result.append(node.val) if node.right: result.extend(inorder(node.right)) return result ```
ALine 2: result = [] inside the function causes repeated list creation
BLine 3: Missing check if node is None before accessing node.left
CLine 5: Appending node.val before checking if node is None
DLine 7: Extending result with right subtree traversal without base case
Step-by-Step Solution
Solution:
  1. Step 1: Identify missing base case

    The function lacks a base case to check if node is None before accessing node.left, causing AttributeError on leaf children.
  2. Step 2: Analyze line 3

    Accessing node.left without checking node is None is the root cause of runtime error.
  3. Final Answer:

    Option B -> Option B
  4. Quick Check:

    Missing None check leads to runtime error [OK]
Quick Trick: Always check for None before accessing node attributes [OK]
Common Mistakes:
MISTAKES
  • Forgetting base case for recursion
  • Assuming node is never None
Trap Explanation:
PITFALL
  • Candidates overlook missing base case, causing runtime errors on leaf nodes.
Interviewer Note:
CONTEXT
  • Tests ability to spot subtle recursion bugs causing runtime errors
Master "Binary Tree Inorder Traversal" in Tree: Depth-First Search

3 interactive learning modes - each teaches the same concept differently

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Tree: Depth-First Search Quizzes