      "## Constraints\n",
      "\n",
      "* If there is one item in the list, do you expect the first and last pointers to both point to it?\n",
      "    * Yes\n",
      "* If there are no items on the list, do you expect the first and last pointers to be None?\n",
      "    * Yes\n",
      "* If you dequeue on an empty queue, does that return None?\n",
      "    * Yes"
     ]
    },
 
</s> remove     "* If there is one item in the list, do you expect the first and last pointers to both point to it?\n",
 </s> add     "* If there is one item in the list, do you expect the head and tail pointers to both point to it?\n", </s> remove     "    * Save the first node's value\n",
    "    * Set first and last to None\n",
 </s> add     "    * Save the head node's value\n",
    "    * Set head and tail to None\n", </s> remove     "* If the list is empty, set first and last to node\n",
    "* Else, set last to node\n",
 </s> add     "* If the list is empty, set head and tail to node\n",
    "* Else, set tail to node\n",
    "* If there are no items on the list, do you expect the head and tail pointers to be None?\n",
      "## Constraints\n",
      "\n",
      "* If there is one item in the list, do you expect the first and last pointers to both point to it?\n",
      "    * Yes\n",
    "* If there are no items on the list, do you expect the head and tail pointers to be None?\n",
      "    * Yes\n",
      "* If you dequeue on an empty queue, does that return None?\n",
      "    * Yes"
     ]
    },
keep keep keep keep replace keep keep keep keep keep
 Polish queue challenge and solution (#70)

Update constraints, algorithm discussion, and code. 
stacks_queues/queue_list/queue_list_solution.ipynb