Bird
Raised Fist0
DSA Javaprogramming~20 mins

Traversal and Printing a Linked List in DSA Java - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Linked List Traversal Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of Traversing a Linked List
What is the output of the following Java code that traverses and prints a singly linked list?
DSA Java
class Node {
    int data;
    Node next;
    Node(int data) { this.data = data; this.next = null; }
}

public class Main {
    public static void main(String[] args) {
        Node head = new Node(1);
        head.next = new Node(2);
        head.next.next = new Node(3);
        Node current = head;
        while (current != null) {
            System.out.print(current.data + " -> ");
            current = current.next;
        }
        System.out.print("null");
    }
}
A1 -> 2 -> null
B1 -> 2 -> 3 -> null
C1 -> 3 -> null
Dnull
Attempts:
2 left
💡 Hint
Follow the linked list nodes from head until you reach null.
❓ Predict Output
intermediate
2:00remaining
Output When Skipping a Node in Traversal
What is the output of this Java code that traverses a linked list but skips printing the second node?
DSA Java
class Node {
    int data;
    Node next;
    Node(int data) { this.data = data; this.next = null; }
}

public class Main {
    public static void main(String[] args) {
        Node head = new Node(1);
        head.next = new Node(2);
        head.next.next = new Node(3);
        Node current = head;
        while (current != null) {
            if (current.data == 2) {
                current = current.next;
                continue;
            }
            System.out.print(current.data + " -> ");
            current = current.next;
        }
        System.out.print("null");
    }
}
A1 -> null
B1 -> 2 -> 3 -> null
C2 -> 3 -> null
D1 -> 3 -> null
Attempts:
2 left
💡 Hint
Notice the continue statement skips printing when data is 2.
🔧 Debug
advanced
2:00remaining
Identify the Error in Linked List Traversal
What error will this Java code produce when trying to traverse and print a linked list?
DSA Java
class Node {
    int data;
    Node next;
    Node(int data) { this.data = data; this.next = null; }
}

public class Main {
    public static void main(String[] args) {
        Node head = new Node(1);
        head.next = new Node(2);
        head.next.next = new Node(3);
        Node current = head;
        while (current.next != null) {
            System.out.print(current.data + " -> ");
            current = current.next;
        }
        System.out.print("null");
    }
}
AOutput: 1 -> 2 -> null
BOutput: 1 -> 2 -> 3 -> null
CNullPointerException at runtime
DCompilation error
Attempts:
2 left
💡 Hint
Check the loop condition carefully; it stops before the last node.
❓ Predict Output
advanced
2:00remaining
Output of Recursive Linked List Print
What is the output of this recursive Java method that prints a linked list?
DSA Java
class Node {
    int data;
    Node next;
    Node(int data) { this.data = data; this.next = null; }
}

public class Main {
    public static void printList(Node node) {
        if (node == null) {
            System.out.print("null");
            return;
        }
        System.out.print(node.data + " -> ");
        printList(node.next);
    }

    public static void main(String[] args) {
        Node head = new Node(5);
        head.next = new Node(10);
        head.next.next = new Node(15);
        printList(head);
    }
}
A5 -> 10 -> 15 -> null
Bnull
C5 -> 10 -> null
D15 -> 10 -> 5 -> null
Attempts:
2 left
💡 Hint
The method prints current node then calls itself on next node.
🧠 Conceptual
expert
2:00remaining
Number of Nodes Printed After Partial Traversal
Given a linked list with nodes containing values 7, 14, 21, 28, 35, what is the number of nodes printed by this Java code snippet?
DSA Java
Node head = new Node(7);
head.next = new Node(14);
head.next.next = new Node(21);
head.next.next.next = new Node(28);
head.next.next.next.next = new Node(35);

Node current = head.next.next; // start at node with 21
int count = 0;
while (current != null) {
    System.out.print(current.data + " -> ");
    current = current.next;
    count++;
}
System.out.print("null");

// What is the value of count after this loop?
A4
B5
C3
D2
Attempts:
2 left
💡 Hint
Count nodes starting from the third node (value 21) to the end.

Practice

(1/5)
1. What is the main purpose of traversing a linked list in Java?
easy
A. To sort the linked list nodes automatically
B. To delete the entire linked list at once
C. To create a new linked list from scratch
D. To visit each node and perform an action like printing its value

Solution

  1. Step 1: Understand traversal meaning

    Traversal means visiting each node one by one in the linked list.
  2. Step 2: Identify traversal purpose

    Commonly, traversal is used to perform actions like printing or searching nodes.
  3. Final Answer:

    To visit each node and perform an action like printing its value -> Option D
  4. Quick Check:

    Traversal = Visit nodes [OK]
Hint: Traversal means visiting nodes one by one [OK]
Common Mistakes:
  • Confusing traversal with deletion
  • Thinking traversal creates a new list
  • Assuming traversal sorts the list
2. Which of the following is the correct syntax to start traversing a singly linked list named head in Java?
easy
A. Node current = head.next;
B. Node current = null;
C. Node current = head;
D. Node current = head.prev;

Solution

  1. Step 1: Identify starting point of traversal

    Traversal starts from the first node, which is referenced by head.
  2. Step 2: Choose correct initialization

    We assign current to head to begin traversal at the first node.
  3. Final Answer:

    Node current = head; -> Option C
  4. Quick Check:

    Start traversal at head node [OK]
Hint: Start traversal from head node reference [OK]
Common Mistakes:
  • Starting from head.next skips first node
  • Initializing current to null causes no traversal
  • Using head.prev in singly linked list causes error
3. What will be the output of the following Java code snippet?
class Node {
  int data;
  Node next;
  Node(int d) { data = d; next = null; }
}

public class Main {
  public static void main(String[] args) {
    Node head = new Node(5);
    head.next = new Node(10);
    head.next.next = new Node(15);

    Node current = head;
    while (current != null) {
      System.out.print(current.data + " -> ");
      current = current.next;
    }
    System.out.print("null");
  }
}
medium
A. 5 -> 10 -> 15 -> null
B. null -> 5 -> 10 -> 15
C. 5 10 15 null
D. 5 -> 10 -> null

Solution

  1. Step 1: Trace node creation and linking

    Nodes created with data 5, 10, 15 linked as 5 -> 10 -> 15 -> null.
  2. Step 2: Follow while loop printing

    Loop prints each node's data followed by ' -> ', then ends with 'null'.
  3. Final Answer:

    5 -> 10 -> 15 -> null -> Option A
  4. Quick Check:

    Print nodes in order with arrows [OK]
Hint: Print each node data with arrow until null [OK]
Common Mistakes:
  • Printing null at start instead of end
  • Missing arrows between nodes
  • Stopping before last node
4. Identify the error in the following code snippet for printing a linked list and select the correct fix.
Node current = head;
while (current.next != null) {
  System.out.print(current.data + " -> ");
  current = current.next;
}
System.out.print("null");
medium
A. Remove System.out.print("null") line
B. Change condition to current != null to print last node
C. Initialize current to head.next to skip first node
D. Add current = current.next inside the loop

Solution

  1. Step 1: Analyze loop condition

    The loop stops when current.next is null, so last node is not printed.
  2. Step 2: Fix condition to include last node

    Changing condition to current != null ensures last node is printed.
  3. Final Answer:

    Change condition to current != null to print last node -> Option B
  4. Quick Check:

    Loop until current is null to print all nodes [OK]
Hint: Loop until current is null to include last node [OK]
Common Mistakes:
  • Using current.next != null misses last node
  • Skipping first node by wrong initialization
  • Removing null print causes unclear output
5. Given a singly linked list, how would you modify the traversal code to print the list in reverse order without changing the list structure?
hard
A. Use recursion to traverse to the end, then print nodes on return
B. Reverse the list first, then traverse normally
C. Use a loop to print nodes from tail to head directly
D. Print nodes while moving forward, then print again backward

Solution

  1. Step 1: Understand limitation of singly linked list

    Singly linked list nodes only point forward, so backward traversal is not direct.
  2. Step 2: Use recursion to print in reverse

    Recursion goes to end first, then prints nodes on returning back, achieving reverse print without changing list.
  3. Final Answer:

    Use recursion to traverse to the end, then print nodes on return -> Option A
  4. Quick Check:

    Recursion prints reverse without modifying list [OK]
Hint: Recursion prints reverse by returning from end [OK]
Common Mistakes:
  • Trying to loop backward in singly linked list
  • Reversing list changes structure, not allowed here
  • Printing twice forward and backward duplicates 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