Bird
Raised Fist0
DSA Javaprogramming~10 mins

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

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

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

DSA Java
void inorder(Node node) {
    if (node == null) return;
    inorder(node.left);
    System.out.println(node[1]);
    inorder(node.right);
}
Drag options to blanks, or click blank then click option'
A.data
B.val
C.value
D.key
Attempts:
3 left
💡 Hint
Common Mistakes
Using a field name that does not exist in the Node class.
Forgetting to print the node's value.
2fill in blank
medium

Complete the code to recursively traverse the left subtree first in inorder traversal.

DSA Java
void inorder(Node node) {
    if (node == null) return;
    [1](node.left);
    System.out.println(node.data);
    inorder(node.right);
}
Drag options to blanks, or click blank then click option'
Ainorder
Bpreorder
Cpostorder
Dtraverse
Attempts:
3 left
💡 Hint
Common Mistakes
Calling a different traversal function like preorder or postorder.
Not calling the function recursively.
3fill in blank
hard

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

DSA Java
void inorder(Node node) {
    if (node == null) return;
    inorder(node.left);
    System.out.println(node.data);
    [1](node.right);
}
Drag options to blanks, or click blank then click option'
Apostorder
Btraverse
Cpreorder
Dinorder
Attempts:
3 left
💡 Hint
Common Mistakes
Using a different traversal function for the right subtree.
Forgetting to traverse the right subtree.
4fill in blank
hard

Fill both blanks to create a map of node values to their depths during inorder traversal.

DSA Java
void inorderDepth(Node node, int depth, Map<Integer, Integer> map) {
    if (node == null) return;
    inorderDepth(node[1], depth[2], map);
    map.put(node.data, depth);
    inorderDepth(node.right, depth + 1, map);
}
Drag options to blanks, or click blank then click option'
A.left
B+ 1
C- 1
D.right
Attempts:
3 left
💡 Hint
Common Mistakes
Using '.right' instead of '.left' for the left subtree.
Decreasing depth instead of increasing it.
5fill in blank
hard

Fill all three blanks to build a list of node values in inorder traversal.

DSA Java
void inorderList(Node node, List<Integer> list) {
    if (node == null) return;
    inorderList(node[1], list);
    list.[2](node.data);
    inorderList(node[3], list);
}
Drag options to blanks, or click blank then click option'
A.left
Badd
C.right
Dappend
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'append' which is not a Java List method.
Mixing up left and right child accesses.

Practice

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

Solution

  1. Step 1: Understand inorder traversal definition

    Inorder traversal visits nodes in the order: left child, then root, then right child.
  2. Step 2: Apply to binary tree traversal

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

    Left subtree, Root, Right subtree -> Option A
  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 Java method signatures correctly represents an inorder traversal of a binary tree node named root?
easy
A. void inorderTraversal(Node root) { System.out.print(root.data); inorderTraversal(root.left); inorderTraversal(root.right); }
B. void inorderTraversal(Node root) { if(root != null) { System.out.print(root.data); inorderTraversal(root.left); inorderTraversal(root.right); } }
C. void inorderTraversal(Node root) { if(root != null) { inorderTraversal(root.right); System.out.print(root.data); inorderTraversal(root.left); } }
D. void inorderTraversal(Node root) { if(root != null) { inorderTraversal(root.left); System.out.print(root.data); inorderTraversal(root.right); } }

Solution

  1. Step 1: Check the order of recursive calls

    Inorder traversal visits left subtree first, then root, then right subtree.
  2. Step 2: Verify method matches inorder order

    void inorderTraversal(Node root) { if(root != null) { inorderTraversal(root.left); System.out.print(root.data); inorderTraversal(root.right); } } calls inorderTraversal on left, prints root data, then calls inorderTraversal on right, matching inorder traversal.
  3. Final Answer:

    Method with left call, print root, then right call -> Option D
  4. Quick Check:

    Left, Root, Right order in code [OK]
Hint: Inorder method: left call, print root, right call [OK]
Common Mistakes:
  • Printing root before left subtree
  • Calling right subtree before left subtree
  • Missing null check before recursion
3. Given the binary tree below:
    4
   / \
  2   5
 / \
1   3

What is the output of an inorder traversal?
medium
A. 1 2 3 4 5
B. 4 2 1 3 5
C. 2 1 3 4 5
D. 1 3 2 4 5

Solution

  1. Step 1: Traverse left subtree of root (4)

    Left subtree is rooted at 2, which has left child 1 and right child 3. Inorder traversal of left subtree is 1, 2, 3.
  2. Step 2: Visit root and right subtree

    After left subtree, visit root 4, then right subtree 5.
  3. Final Answer:

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

    Inorder visits nodes in sorted order for BST [OK]
Hint: Inorder of BST gives sorted node values [OK]
Common Mistakes:
  • Visiting root before left subtree
  • Mixing left and right subtree order
  • Skipping leaf nodes
4. Consider this Java method for inorder traversal:
void inorder(Node root) {
  if(root == null) return;
  inorder(root.right);
  System.out.print(root.data + " ");
  inorder(root.left);
}

What is the problem with this code?
medium
A. It visits nodes in preorder instead of inorder
B. It visits nodes in postorder instead of inorder
C. It visits nodes in reverse inorder (Right, Root, Left)
D. It causes a NullPointerException

Solution

  1. Step 1: Analyze the recursive call order

    The method calls inorder on right subtree first, then prints root, then calls inorder on left subtree.
  2. Step 2: Compare with inorder traversal definition

    Standard inorder is Left, Root, Right. This code visits Right, Root, Left, which is reverse inorder.
  3. Final Answer:

    Visits nodes in reverse inorder (Right, Root, Left) -> Option C
  4. Quick Check:

    Right, Root, Left order detected [OK]
Hint: Check order of recursive calls to find traversal type [OK]
Common Mistakes:
  • Assuming it is correct inorder
  • Ignoring order of recursive calls
  • Confusing traversal types
5. You have a binary tree where each node contains a unique integer. You want to print all node values in ascending order using inorder traversal. However, the tree is not a binary search tree (BST). Which approach ensures correct ascending order output?
hard
A. Perform inorder traversal directly and print values as visited
B. Perform inorder traversal and then sort the collected values before printing
C. Perform preorder traversal and print values as visited
D. Perform postorder traversal and print values as visited

Solution

  1. Step 1: Understand inorder traversal on non-BST

    Inorder traversal visits nodes in Left, Root, Right order but does not guarantee sorted order if tree is not BST.
  2. Step 2: Ensure ascending order output

    To get ascending order, collect all node values during traversal, then sort them before printing.
  3. Final Answer:

    Perform inorder traversal and then sort the collected values before printing -> Option B
  4. Quick Check:

    Non-BST inorder not sorted; sorting needed [OK]
Hint: Inorder only sorts BST; sort after traversal for non-BST [OK]
Common Mistakes:
  • Assuming inorder traversal always sorts
  • Printing values during traversal without sorting
  • Using preorder or postorder expecting sorted 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