      "## Constraints\n",
      "\n",
      "*Problem statements are sometimes ambiguous.  Identifying constraints and stating assumptions can help to ensure you code the intended solution.*\n",
      "\n",
      "* What if the final node is being deleted, for example a single node list?  Do we make it a dummy with a NULL value?\n",
      "    * Yes\n",
      "* Can we assume we already have a linked list class that can be used for this problem?\n",
      "    * Yes"
     ]
    },
 
</s> remove     "* What if the final node is being deleted, for example a single node list?  Do we make it a dummy with a NULL value?\n",
 </s> add     "* What if the final node is being deleted, for example a single node list?  Do we make it a dummy with value None?\n", </s> remove     "    * Only add if a node is not NULL\n",
 </s> add     "    * Only add if a node is not None\n", </s> remove     "* If the data we are inserting is NULL, return\n",
 </s> add     "* If the data we are inserting is None, return\n", </s> remove     "* If the data we are inserting is NULL, return\n",
 </s> add     "* If the data we are inserting is None, return\n", </s> remove     "* If data we are deleting is NULL, return\n",
 </s> add     "* If data we are deleting is None, return\n",
    "* What if the final node is being deleted, for example a single node list?  Do we make it a dummy with value None?\n",
      "## Constraints\n",
      "\n",
      "*Problem statements are sometimes ambiguous.  Identifying constraints and stating assumptions can help to ensure you code the intended solution.*\n",
      "\n",
    "* What if the final node is being deleted, for example a single node list?  Do we make it a dummy with value None?\n",
      "    * Yes\n",
      "* Can we assume we already have a linked list class that can be used for this problem?\n",
      "    * Yes"
     ]
    },
keep keep keep keep replace keep keep keep keep keep
 Changed discussions of NULL to None to be more Pythonic. 
linked_lists/delete_mid/delete_mid_challenge.ipynb