Bird
Raised Fist0
DSA Javaprogramming~20 mins

Tree Traversal Inorder Left Root Right in DSA Java - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Inorder Traversal Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of inorder traversal?
Given the binary tree below, what is the output of inorder traversal (Left, Root, Right)?

Tree structure:
10
/ \
5 15
/ \ \
3 7 20
DSA Java
class Node {
    int val;
    Node left, right;
    Node(int v) { val = v; left = right = null; }
}

public class Main {
    public static void inorder(Node root) {
        if (root == null) return;
        inorder(root.left);
        System.out.print(root.val + " ");
        inorder(root.right);
    }

    public static void main(String[] args) {
        Node root = new Node(10);
        root.left = new Node(5);
        root.right = new Node(15);
        root.left.left = new Node(3);
        root.left.right = new Node(7);
        root.right.right = new Node(20);
        inorder(root);
    }
}
A3 5 7 10 15 20
B10 5 3 7 15 20
C3 7 5 10 20 15
D5 3 7 10 15 20
Attempts:
2 left
💡 Hint
Remember inorder traversal visits left subtree first, then root, then right subtree.
❓ Predict Output
intermediate
2:00remaining
Inorder traversal output for a skewed tree
What is the output of inorder traversal for the following right-skewed binary tree?

Tree structure:
1
\
2
\
3
\
4
DSA Java
class Node {
    int val;
    Node left, right;
    Node(int v) { val = v; left = right = null; }
}

public class Main {
    public static void inorder(Node root) {
        if (root == null) return;
        inorder(root.left);
        System.out.print(root.val + " ");
        inorder(root.right);
    }

    public static void main(String[] args) {
        Node root = new Node(1);
        root.right = new Node(2);
        root.right.right = new Node(3);
        root.right.right.right = new Node(4);
        inorder(root);
    }
}
A1 2 3 4
B4 3 2 1
C1 3 2 4
D2 1 3 4
Attempts:
2 left
💡 Hint
Inorder visits left first, but here left nodes are null.
🔧 Debug
advanced
2:00remaining
Identify the error in inorder traversal code
What error will this code produce when performing inorder traversal on a binary tree?
DSA Java
public void inorder(Node root) {
    if (root == null) return;
    inorder(root.right);
    System.out.print(root.val + " ");
    inorder(root.left);
}
ASyntax error: missing semicolon
BStackOverflowError due to infinite recursion
CPrints nodes in reverse inorder order
DNullPointerException at root.val
Attempts:
2 left
💡 Hint
Check the order of recursive calls for left and right children.
🧠 Conceptual
advanced
1:30remaining
Inorder traversal property of BST
Which statement about inorder traversal of a Binary Search Tree (BST) is true?
AIt prints the nodes in descending sorted order
BIt prints the nodes in ascending sorted order
CIt prints the nodes in random order
DIt prints only the leaf nodes
Attempts:
2 left
💡 Hint
Think about how BST stores smaller values on left and larger on right.
🚀 Application
expert
2:30remaining
Number of nodes visited before root in inorder traversal
In an inorder traversal of a binary tree, how many nodes are visited before the root node is printed?
AOnly the left child of the root
BAll nodes in the right subtree of the root
CNo nodes are visited before the root
DAll nodes in the left subtree of the root
Attempts:
2 left
💡 Hint
Inorder visits left subtree fully before root.

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