Last Updated: 1 Jun, 2017

# Delete a Node from Linked List

Moderate

## Problem statement

#### You have been given a linked list of integers. Your task is to write a function that deletes a node from a given position, 'POS'.

##### Note :
``````Assume that the Indexing for the linked list always starts from 0.

If the position is greater than or equal to the length of the linked list, you should return the same linked list without any change.
``````
##### Illustration :
``````The following images depict how the deletion has been performed.
``````

#### Image-II :

##### Input format :
``````The first line contains the elements of the linked list separated by a single space.
The second line contains the integer value of 'POS'. It denotes the position in the linked list from where the node has to be deleted.
``````
##### Remember/Consider :
``````While specifying the list elements for input, -1 indicates the end of the singly linked list and hence, would never be a list element
``````
##### Output format :
``````Print the resulting linked list of integers in a row, separated by a single space.
``````

#### Note:

``````You are not required to print the output, it has already been taken care of. Just implement the function.
``````

## Approaches

### 01 Approach

1. If HEAD is null, return null since we can’t delete anything from an empty list.
2. If the head’s DATA is equal to the element we want to remove, return the next node from the HEAD. Othewise go to step 3.
3. Use recursion on the head’s next node to get the HEAD of the modified list.