input: Write a function to remove all the duplicates from a linked list in Python. Implement the function `remove_duplicates` in the `LinkedList` class. The function should take a list of nodes as input and transform the linked list to contain only unique elements, preserving the original order of the first occurrence of each element. Return the modified linked list.
  
  
  class Node: 
      def __init__(self, data): 
          self.data = data 
          self.next = None 
    
  class LinkedList: 
      def __init__(self): 
          self.head = None
  
      def remove_duplicates(self, list_nodes):
          curr_node = self.head 
          new_list = []
          while curr_node != None: 
              if curr_node.data not in new_list: 
                  new_list.append(curr_node.data) 
              curr_node = curr_node.next
                  
          self.head = None
          for i in new_list:
              self.insert_node(i)
      
      def insert_node(self, data): 
          new_node = Node(data) 
          if self.head is None: 
              self.head = new_node 
              return
          last = self.head 
          while (last.next): 
              last = last.next
          last.next =  new_node
  
  list_nodes = [7, 14, 28, 28, 28, 35, 49]
  llist = LinkedList()
  for node in list_nodes:
      llist.insert_node(node)
  llist.remove_duplicates(list_nodes)
  assert llist.head.data == 7
  assert llist.head.next.data == 14
  assert llist.head.next.next.data == 28
  assert llist.head.next.next.next.data == 35
  assert llist.head.next.next.next.next.data == 49
output: def remove_duplicates(self, list_nodes):
      curr_node = self.head 
      new_list = []
      while curr_node != None: 
          if curr_node.data not in new_list: 
              new_list.append(curr_node.data) 
          curr_node = curr_node.next
              
      self.head = None
      for i in new_list:
          self.insert_node(i)