Instagram
youtube
Facebook
Twitter

Insert node at the head of a linked list| Linked List

Task(easy)

Given a pointer to the head of a linked list, insert a new node before the head. The next value in the new node should point to head and the data value should be replaced with a given value. Return a reference to the new head of the list. The head pointer given may be null meaning that the initial list is empty.

Function Description

Complete the function insertNodeAtHead in the editor below.

insertNodeAtHead has the following parameter(s):

  • SinglyLinkedListNode llist: a reference to the head of a list
  • data: the value to insert in the data field of the new node

Input Format

The first line contains an integer n, the number of elements to be inserted at the head of the list.
The next n lines contain an integer each, the elements to be inserted, one per function call.

Constraints

1<n<1000
1<list[i]<1000

Sample Input

5

383

484

392

975

321

Sample Output

321

975

392

484

383

Solution 1

def insertNodeAtHead(llist, data):

    # Write your code here

    newNode = SinglyLinkedListNode(data)

    if llist is None:

        llist = newNode

    else:

        newNode.next = llist

        llist = newNode

    return llist

Solution 2

def insertNodeAtHead(llist, data):

    new_node = SinglyLinkedListNode(data)

    new_node.next = llist

    return new_node

Explanation Steps

  1. Create a new node with the desired data.
  2. Set the new node's next to the current head of the list.
  3. Update the head of the list to point to the new node.