Bird
Raised Fist0
DSA Javaprogramming~30 mins

Traversal and Printing a Linked List in DSA Java - Build from Scratch

Choose your learning style10 modes available
Traversal and Printing a Linked List
📖 Scenario: You are working on a simple contact list app. Each contact is stored as a node in a linked list. You want to see all the contacts by traversing the list and printing each contact's name.
🎯 Goal: Build a linked list of contacts, then traverse and print all contact names in order.
📋 What You'll Learn
Create a linked list node class called Node with a String name and a Node next reference
Create a linked list with exactly three nodes containing names: "Alice", "Bob", and "Charlie"
Use a Node variable called head to point to the first node
Traverse the linked list using a Node variable called current
Print each contact name followed by " -> " and end with null
💡 Why This Matters
🌍 Real World
Linked lists are used in many apps to store ordered data where size can change, like contact lists, music playlists, or undo history.
💼 Career
Understanding linked lists is fundamental for software developers, especially for roles involving data structures, algorithms, and system design.
Progress0 / 4 steps
1
Create the Node class and linked list nodes
Create a class called Node with a String name and a Node next field. Then create three Node objects named node1, node2, and node3 with names "Alice", "Bob", and "Charlie" respectively.
DSA Java
Hint

Define the Node class with a constructor that sets the name. Then create three nodes with the given names.

2
Link the nodes and set the head
Link the nodes by setting node1.next to node2 and node2.next to node3. Then create a Node variable called head and assign it to node1.
DSA Java
Hint

Set the next of node1 to node2 and node2 to node3. Then assign head to node1.

3
Traverse the linked list
Create a Node variable called current and set it to head. Use a while loop to traverse the linked list until current is null. Inside the loop, print the current.name followed by " -> ". Then move current to current.next.
DSA Java
Hint

Use a while loop to print each node's name followed by " -> ". Move current to the next node each time.

4
Print null at the end
After the while loop, print "null" to show the end of the linked list.
DSA Java
Hint

After the loop finishes, print "null" to indicate the end of the list.

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