Question

    What will be the output of the following code when printList is called with a linked list containing the values 1 -> 2 -> 3?

    class Node:

        def __init__(self, data):

            self.data = data

            self.next = None

    class LinkedList:

        def __init__(self):

            self.head = None

        def append(self, data):

            new_node = Node(data)

            if not self.head:

                self.head = new_node

                return

            last_node = self.head

            while last_node.next:

                last_node = last_node.next

            last_node.next = new_node

        def printList(self):

            current = self.head

            while current:

                print(current.data, end=" -> ")

                current = current.next

            print("None")

    ll = LinkedList()

    ll.append(1)

    ll.append(2)

    ll.append(3)

    ll.printList()

    A 1 -> 2 -> 3 -> None Correct Answer Incorrect Answer
    B 1 -> None Correct Answer Incorrect Answer
    C 2 -> 3 -> None Correct Answer Incorrect Answer
    D 3 -> 2 -> 1 -> None Correct Answer Incorrect Answer
    E None Correct Answer Incorrect Answer

    Solution

    In this code, a linked list is implemented where each Node contains a data field and a reference to the next node. The LinkedList class provides methods to append nodes and print the list. The append method adds nodes to the end of the list, and printList iterates through the list, printing each node's data followed by " -> ". When nodes with values 1, 2, and 3 are appended, the list becomes 1 -> 2 -> 3, and printList outputs 1 -> 2 -> 3 -> None. Why Other Options Are Wrong: B) 1 -> None: This option is incorrect because it implies that only 1 is in the list, ignoring the 2 and 3 that were appended. C) 2 -> 3 -> None: This option is incorrect because it suggests that the list starts with 2, which is not true since 1 was added first. D) 3 -> 2 -> 1 -> None: This option is incorrect as it represents a reverse order of the list, which does not occur when appending in the given code. E) None: This option is incorrect as it implies there is no output or that the list is empty, which is not the case.

    Practice Next

    Relevant for Exams: