Clean LinkedList implementation
Complexity\n- Time complexity:\n Add your time complexity here, e.g. O(n) \nO(N/K) where N is the number of all possible values and K is the number of predefine
# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n$$O(N/K)$$ where N is the number of all possible values and K is the number of predefined buckets, which is 721.\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n$$O(K + M)$$ where K is the number of predefined buckets, and M is the number of unique values that have been inserted into the HashSet.\n# Code\n```\nclass Node: \n    def __init__(self,value,next_node=None):\n        self.val = value\n        self.next = next_node \nclass LinkedList:\n    def __init__(self):\n        self.head = Node(None)\n\n    def insert(self, val):\n        if val not in self:\n            new_node = Node(val, self.head.next)\n            self.head.next = new_node \n    \n    def remove(self, val):\n        curr = self.head \n        while curr.next != None:\n            if val == curr.next.val: \n                curr.next = curr.next.next \n                return \n            curr = curr.next \n\n    def __contains__(self, val):\n        curr = self.head.next\n        while curr is not None:\n            if curr.val == val:\n                # value existed already, do nothing\n                return True\n            curr = curr.next\n        return False\n\nclass MyHashSet(object):\n\n    def __init__(self):\n        self.size = 721\n        self.buckets = [LinkedList() for i in range(self.size)]\n        \n    def _hash(self, key):\n        return key % self.size \n\n    def add(self, key):\n        """\n        :type key: int\n        :rtype: None\n        """\n        self.buckets[self._hash(key)].insert(key)\n\n    def remove(self, key):\n        """\n        :type key: int\n        :rtype: None\n        """\n        self.buckets[self._hash(key)].remove(key)\n        \n\n    def contains(self, key):\n        """\n        :type key: int\n        :rtype: bool\n        """\n        return key in self.buckets[self._hash(key)]\n        \n\n\n# Your MyHashSet object will be instantiated and called as such:\n# obj = MyHashSet()\n# obj.add(key)\n# obj.remove(key)\n# param_3 = obj.contains(key)\n```
['Python', 'Python3']