Home30 Days Of CodeHackerRank Day 24: More Linked Lists 30 days of code solution

# HackerRank Day 24: More Linked Lists 30 days of code solution

Today we are going to solve HackerRank Day 24: More Linked Lists 30 days of code solution 30 days of code solution in C++, Java & Python.

## Objective

Check out the Tutorial tab for learning materials and an instructional video!

Node class is provided for you in the editor. A Node object has an integer, data, field data and a Node instance pointer, next, pointing to another node (i.e.: the next node in a list).

removeDuplicates function is declared in your editor, which takes a pointer to the node of a linked list as a parameter. Complete removeDuplicates so that it deletes any duplicate nodes from the list and returns the head of the updated list.

Note: The head pointer may be null, indicating that the list is empty. Be sure to reset your next pointer when performing deletions to avoid breaking the list.

## Input Format

You do not need to read any input from stdin. The following input is handled by the locked stub code and passed to the removeDuplicates function:
The first line contains an integer, N, the number of nodes to be inserted.
The N subsequent lines each contain an integer describing the data value of a node being inserted at the list’s tail.

## Constraints

The data elements of the linked list argument will always be in non-decreasing order.

## Output Format

Your removeDuplicates function should return the head of the updated linked list. The locked stub code in your editor will print the returned list to stdout.

Sample Input

``````6
1
2
2
3
3
4``````

Sample Output

``1 2 3 4 ``

Explanation

N = 6, and our non-decreasing list is {1, 2, 2, 3, 3, 4}. The values 2 and 3 both occur twice in the list, so we remove the two duplicate nodes. We then return our updated (ascending) list, which is {1, 2, 3, 4}.

## More Linked Lists HackerRank Solution in C

``````Node* removeDuplicates(Node *head){
}

while (curr != NULL) {
if (prev->data == curr->data) {
prev->next = curr->next;
free(curr);
curr = prev->next;
} else {
prev = curr;
curr = curr->next;
}
}
}``````

## More Linked Lists HackerRank Solution in C++

`````` Node* removeDuplicates(Node *head)
{
}

for(;;){
currentNode = currentNode->next;
if(currentNode == nullptr){
break;
}

int currentVal = currentNode->data;
if(currentVal == lastVal){
lastNode->next = currentNode->next;
currentNode = lastNode;
} else {
lastVal = currentVal;
lastNode = currentNode;
}
}
}
``````

## More Linked Lists HackerRank Solution in Java

``````  public static Node removeDuplicates(Node head) {
Set<Integer> set = new HashSet<Integer>();
while (curr.next != null) {

if (set.contains(curr.next.data)) {
curr.next = curr.next.next;
} else {
curr = curr.next;
}
}
}``````

## More Linked Lists HackerRank Solution in Python 3

``````def removeDuplicates(self,head):
qu = []
return
qu.append(p.data)
p = p.next
while p is not None:
qu.append(p.data)
p = p.next
qu = list(dict.fromkeys(qu))
for item in qu:
print(item,end=' ')``````

30 Days of Code HackerRank Solutions List – Day 0 to Day 29

RELATED ARTICLES