Delete duplicate-value nodes from a sorted linked list hackerrank solution

Problem solution in Python programming.

#!/bin/python3 import math import os import random import re import sys class SinglyLinkedListNode: def __init__(self, node_data): self.data = node_data self.next = None class SinglyLinkedList: def __init__(self): self.head = None self.tail = None def insert_node(self, node_data): node = SinglyLinkedListNode(node_data) if not self.head: self.head = node else: self.tail.next = node self.tail = node def print_singly_linked_list(node, sep, fptr): while node: fptr.write(str(node.data)) node = node.next if node: fptr.write(sep) def removeDuplicates(head): ans=None s=set() ansl=SinglyLinkedList() while head: if head.data not in s: s.add(head.data) ansl.insert_node(head.data) head=head.next else: head=head.next return ansl.head if __name__ == '__main__': fptr = open(os.environ['OUTPUT_PATH'], 'w') t = int(input()) for t_itr in range(t): llist_count = int(input()) llist = SinglyLinkedList() for _ in range(llist_count): llist_item = int(input()) llist.insert_node(llist_item) llist1 = removeDuplicates(llist.head) print_singly_linked_list(llist1, ' ', fptr) fptr.write('\n') fptr.close()