Bird
Raised Fist0
DSA Javaprogramming~20 mins

Tree Terminology Root Leaf Height Depth Level in DSA Java - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Tree Terminology 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 the tree traversal showing root and leaf nodes?
Given the following Java code that builds a simple tree and prints root and leaf nodes, what is the printed output?
DSA Java
class Node {
    int value;
    Node left, right;
    Node(int val) { value = val; left = right = null; }
}

public class TreeTest {
    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(18);

        System.out.print("Root: " + root.value + "\n");
        System.out.print("Leaf nodes: ");
        printLeaves(root);
    }

    static void printLeaves(Node node) {
        if (node == null) return;
        if (node.left == null && node.right == null) {
            System.out.print(node.value + " ");
        }
        printLeaves(node.left);
        printLeaves(node.right);
    }
}
A
Root: 10
Leaf nodes: 3 7 15 18 
B
Root: 10
Leaf nodes: 5 15 
C
Root: 10
Leaf nodes: 3 7 18 
D
Root: 10
Leaf nodes: 3 7 
Attempts:
2 left
💡 Hint
Leaf nodes have no children (left and right are null).
❓ Predict Output
intermediate
2:00remaining
What is the height of the given binary tree?
Consider the binary tree constructed below. What is the height of the tree?
DSA Java
class Node {
    int value;
    Node left, right;
    Node(int val) { value = val; left = right = null; }
}

public class TreeHeight {
    public static void main(String[] args) {
        Node root = new Node(1);
        root.left = new Node(2);
        root.right = new Node(3);
        root.left.left = new Node(4);
        root.left.left.left = new Node(5);

        System.out.println(height(root));
    }

    static int height(Node node) {
        if (node == null) return -1;
        int leftHeight = height(node.left);
        int rightHeight = height(node.right);
        return 1 + Math.max(leftHeight, rightHeight);
    }
A3
B4
C5
D2
Attempts:
2 left
💡 Hint
Height counts edges on longest path from node to leaf.
❓ Predict Output
advanced
2:00remaining
What is the depth of node with value 7 in the tree?
Given the tree below, what is the depth of the node with value 7?
DSA Java
class Node {
    int value;
    Node left, right;
    Node(int val) { value = val; left = right = null; }
}

public class TreeDepth {
    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);

        System.out.println(depth(root, 7, 0));
    }

    static int depth(Node node, int val, int currentDepth) {
        if (node == null) return -1;
        if (node.value == val) return currentDepth;
        int left = depth(node.left, val, currentDepth + 1);
        if (left != -1) return left;
        return depth(node.right, val, currentDepth + 1);
    }
A1
B0
C3
D2
Attempts:
2 left
💡 Hint
Depth counts edges from root to the node.
🧠 Conceptual
advanced
1:30remaining
Which statement correctly describes the level of nodes in a tree?
Select the correct statement about the level of nodes in a tree.
ALevel of root node is 1, and level decreases by 1 for each step down the tree.
BLevel of root node is 0, and level increases by 1 for each step down the tree.
CLevel of root node is 0, and level decreases by 1 for each step down the tree.
DLevel of root node is 1, and level remains the same for all nodes.
Attempts:
2 left
💡 Hint
Level counts how far a node is from the root in steps.
🧠 Conceptual
expert
1:30remaining
Which node is both a leaf and has height 0 in a tree?
In a tree, which node is guaranteed to be both a leaf and have height 0?
AA node with no children
BThe root node
CA node with one child
DA node with two children
Attempts:
2 left
💡 Hint
Height 0 means no edges below the node.

Practice

(1/5)
1. In a tree data structure, which node is called the root?
easy
A. The topmost node with no parent
B. A node with no children
C. Any node at the bottom level
D. A node with exactly two children

Solution

  1. Step 1: Understand the root node concept

    The root node is the starting point of the tree and has no parent node above it.
  2. Step 2: Identify the correct description

    Among the options, only the topmost node with no parent matches the root node definition.
  3. Final Answer:

    The topmost node with no parent -> Option A
  4. Quick Check:

    Root = topmost node with no parent [OK]
Hint: Root node has no parent, always at the top [OK]
Common Mistakes:
  • Confusing root with leaf node
  • Thinking root must have children
  • Assuming root is any node at bottom
2. Which of the following is the correct way to declare a leaf node in Java if Node is a class representing tree nodes?
easy
A. Node leaf = new Node(); leaf.left = new Node();
B. Node leaf = null; // leaf nodes cannot be null
C. Node leaf = new Node(null, null); // no children
D. Node leaf = new Node(5); // with one child

Solution

  1. Step 1: Understand leaf node definition

    A leaf node has no children, so its left and right child references should be null.
  2. Step 2: Check each option for leaf node declaration

    Node leaf = new Node(5); // with one child: Node leaf = new Node(5); uses standard constructor which sets left = right = null, creating a leaf node. A adds a child. C likely causes syntax error (no such constructor). D is null, not a node.
  3. Final Answer:

    Node leaf = new Node(5); // with no children -> Option D
  4. Quick Check:

    Leaf node has no children = left and right null [OK]
Hint: Leaf nodes have no children, so child pointers are null [OK]
Common Mistakes:
  • Assuming leaf nodes must have data only
  • Creating children for leaf nodes
  • Setting leaf node to null reference
3. Consider the following tree structure:
        1
       / \
      2   3
     /   / \
    4   5   6
What is the height of the tree?
medium
A. 5
B. 3
C. 2
D. 4

Solution

  1. Step 1: Understand height of a tree

    Height is the number of edges on the longest path from root to a leaf node.
  2. Step 2: Find longest path from root (1) to leaf

    Paths: 1->2->4 has 2 edges, 1->3->5 has 2 edges, 1->3->6 has 2 edges. So height = 2.
  3. Final Answer:

    2 -> Option C
  4. Quick Check:

    Longest path edges = 2 [OK]
Hint: Height = longest edges from root to leaf [OK]
Common Mistakes:
  • Counting nodes instead of edges for height
  • Confusing height with depth
  • Counting root as height 1
4. Given the following code snippet, what is the error?
class Node {
  int data;
  Node left, right;
  Node(int data) {
    this.data = data;
    left = right = null;
  }
}

Node root = new Node(10);
root.left = new Node(20);
root.right = new Node(30);
root.left.left = new Node(40);
root.left.right = new Node(50);
root.right.left = new Node(60);
root.right.right = new Node(70);

System.out.println(root.left.right.data);
medium
A. NullPointerException at root.left.right
B. No error, prints 50
C. Syntax error in Node class
D. Prints 60 instead of 50

Solution

  1. Step 1: Trace node assignments

    root.left.right is assigned new Node(50), so it exists and has data 50.
  2. Step 2: Check print statement

    Printing root.left.right.data will print 50 without error.
  3. Final Answer:

    No error, prints 50 -> Option B
  4. Quick Check:

    root.left.right.data = 50 [OK]
Hint: Check if node is assigned before accessing data [OK]
Common Mistakes:
  • Assuming uninitialized nodes cause error here
  • Confusing left and right child nodes
  • Thinking print outputs 60
5. In a tree, if the root node is at level 0, what is the depth of the node with value 6 in the tree below?
        1
       / \
      2   3
     /   / \
    4   5   6
medium
A. 2
B. 1
C. 3
D. 4

Solution

  1. Step 1: Understand depth definition

    Depth is the number of edges from the root node to the target node.
  2. Step 2: Trace path from root (1) to node 6

    Path: 1 -> 3 -> 6 has 2 edges, so depth is 2.
  3. Final Answer:

    2 -> Option A
  4. Quick Check:

    Edges from root to node 6 = 2 [OK]
Hint: Depth = edges from root to node [OK]
Common Mistakes:
  • Counting nodes instead of edges for depth
  • Confusing depth with level starting at 1
  • Assuming depth equals height
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