     "metadata": {},
     "source": [
      "## Algorithm: Hash Map Lookup\n",
      "\n",
      "* For each node\n",
      "    * If the node's value is in the hash map\n",
      "        * Delete the node\n",
      "    * Else\n",
      "        * Add node's value to the hash map\n",
      "\n",
 
</s> remove     "        * If the node's value is in the hash map\n",
    "            * Delete the node\n",
    "        * Else\n",
    "            * Add node's value to the hash map\n",
 </s> add     "        * Delete nodes that match current node\n", </s> remove     "* Space: O(n)\n",
    "\n",
    "Note:\n",
    "* Deletion requires two pointers, one to the previous node and one to the current node"
 </s> add     "* Space: O(n)" </s> remove     "* Deletion requires two pointers, one to the previous node and one to the current node\n",
 </s> add  </s> remove     "* Can you use additional data structures?\n",
    "    * Implement both solutions\n",
 </s> add 
    "Loop through each node\n",
    "\n",
     "metadata": {},
     "source": [
      "## Algorithm: Hash Map Lookup\n",
      "\n",
    "Loop through each node\n",
    "\n",
      "* For each node\n",
      "    * If the node's value is in the hash map\n",
      "        * Delete the node\n",
      "    * Else\n",
      "        * Add node's value to the hash map\n",
      "\n",
keep keep keep add keep keep keep keep keep keep
 Polish remove duplicates challenge and solution

Update constraints and algorithm discussion. 
linked_lists/remove_duplicates/remove_duplicates_solution.ipynb