Question

    Which of the following code snippets correctly

    implements a singly linked list in Java, including the ability to insert a new node at the beginning? class Node {     int data;     Node next;         Node( int data) {         this .data = data;         this .next = null ;     }}   class LinkedList {     Node head;         LinkedList() {         head = null ;     }          void insertAtBeginning ( int data) {         Node newNode = new Node (data);         newNode.next = head;         head = newNode;     }}
    A The code correctly implements a singly linked list with the insertion at the beginning. Correct Answer Incorrect Answer
    B The insertAtBeginning method should not be in the LinkedList class Correct Answer Incorrect Answer
    C The Node constructor does not correctly initialize the next reference Correct Answer Incorrect Answer
    D The insertAtBeginning method incorrectly modifies the head of the list. Correct Answer Incorrect Answer
    E The code should implement a circular linked list, not a singly linked list. Correct Answer Incorrect Answer

    Solution

    The code provided is a valid implementation of a singly linked list with an insertion operation at the beginning. Here's why A is the correct answer:

    • Node class defines a single node with data and next reference.
    • LinkedList class manages the list and allows for the insertion of a new node at the beginning by setting the new node's next to the current head and updating the head to point to the new node.
    B is incorrect because the method should logically be in the LinkedList class to encapsulate list operations. C is incorrect as the next reference is correctly initialized to null . D is incorrect; modifying the head is exactly what is needed when inserting at the beginning. E is incorrect as the list is meant to be singly linked, not circular.

    Practice Next