      "                return curr_node\n",
      "            else:\n",
      "                curr_node = curr_node.next\n",
      "\n",
      "    def print_list(self):\n",
      "        curr_node = self.head\n",
      "        while curr_node is not None:\n",
      "            print(curr_node.data)\n",
      "            curr_node = curr_node.next"
 
</s> remove     "* Coming soon\n",
 </s> add     "* If data we are deleting is NULL, return\n",
    "* If the list is empty, return\n",
    "* For each node, keep track of previous and current node\n",
    "    * If the value we are deleting is a match in the current node\n",
    "        * Update previous node's next pointer to the current node's next pointer\n",
    "        * We do not have have to explicitly delete in Python\n",
    "    * Else, move on to the next node\n", </s> remove     "linked_list = LinkedList(None)\n",
 </s> add     "linked_list = LinkedList(head)\n", </s> remove     "# Find in an empty list\n",
 </s> add     "# Find a NULL\n", </s> remove     "# Find a NULL\n",
 </s> add     "# Find in an empty list\n", </s> remove     "* \n",
 </s> add     "* Delete a NULL\n",
    "* Delete in an empty list\n",
    "* Delete in a list with one element or more matching elements\n",
    "* Delete in a list with no matches\n",
    "                \n",
    "    def delete(self, data):\n",
    "        if data is None:\n",
    "            return\n",
    "        if self.head is None:\n",
    "            return\n",
    "        prev_node = self.head\n",
    "        curr_node = prev_node.next\n",
    "        while curr_node is not None:\n",
    "            if curr_node.data == data:\n",
    "                prev_node.next = curr_node.next\n",
    "                return\n",
    "            else:\n",
    "                prev_node = curr_node\n",
    "                curr_node = curr_node.next\n",
      "                return curr_node\n",
      "            else:\n",
      "                curr_node = curr_node.next\n",
    "                \n",
    "    def delete(self, data):\n",
    "        if data is None:\n",
    "            return\n",
    "        if self.head is None:\n",
    "            return\n",
    "        prev_node = self.head\n",
    "        curr_node = prev_node.next\n",
    "        while curr_node is not None:\n",
    "            if curr_node.data == data:\n",
    "                prev_node.next = curr_node.next\n",
    "                return\n",
    "            else:\n",
    "                prev_node = curr_node\n",
    "                curr_node = curr_node.next\n",
      "\n",
      "    def print_list(self):\n",
      "        curr_node = self.head\n",
      "        while curr_node is not None:\n",
      "            print(curr_node.data)\n",
      "            curr_node = curr_node.next"
keep keep add keep keep keep keep keep keep
 Added linked list delete method. 
linked-lists/linked-list.ipynb