          if self.first is None and self.last is None:
              self.first = node
              self.last = node
          else:
              self.last.next = node
              self.last = node
  
      def dequeue(self):
          # Empty list
          if self.first is None and self.last is None:
              return None
 
</s> remove         if self.first is None and self.last is None:
            self.first = node
            self.last = node
 </s> add         # Empty list
        if self.head is None and self.tail is None:
            self.head = node
            self.tail = node </s> remove         if self.first is None and self.last is None:
 </s> add         if self.head is None and self.tail is None: </s> remove         self.first = None
        self.last = None
 </s> add         self.head = None
        self.tail = None </s> remove         data = self.first.data
 </s> add         data = self.head.data </s> remove     "        if self.first is None and self.last is None:\n",
    "            self.first = node\n",
    "            self.last = node\n",
 </s> add     "        # Empty list\n",
    "        if self.head is None and self.tail is None:\n",
    "            self.head = node\n",
    "            self.tail = node\n",
            self.tail.next = node
            self.tail = node
          if self.first is None and self.last is None:
              self.first = node
              self.last = node
          else:
            self.tail.next = node
            self.tail = node
            self.tail.next = node
            self.tail = node
  
      def dequeue(self):
          # Empty list
          if self.first is None and self.last is None:
              return None
keep keep keep keep replace replace keep keep keep keep keep
 Polish queue challenge and solution (#70)

Update constraints, algorithm discussion, and code. 
stacks_queues/queue_list/queue_list.py