      "    def __init__(self, top=None):\n",
      "        self.top = top\n",
      "\n",
      "    def push(self, data):\n",
      "        node = Node(data, self.top)\n",
      "        self.top = node\n",
      "\n",
      "    def pop(self):\n",
      "        if self.top is None:\n",
      "            return None\n",
      "        data = self.top.data\n",
 
</s> remove         node = Node(data, self.top)
        self.top = node
 </s> add         self.top = Node(data, self.top) </s> remove     "* None"
 </s> add     "* If we pop on an empty stack, do we return None?\n",
    "    * Yes\n",
    "* Can we assume this fits memory?\n",
    "    * Yes" </s> remove     "* None"
 </s> add     "* If we pop on an empty stack, do we return None?\n",
    "    * Yes\n",
    "* Can we assume this fits memory?\n",
    "    * Yes" </s> remove    "version": "3.4.3"
 </s> add    "version": "3.5.0" </s> remove    "pygments_lexer": "ipython2",
   "version": "2.7.10"
 </s> add    "pygments_lexer": "ipython3",
   "version": "3.5.0"
    "        self.top = Node(data, self.top)\n",
      "    def __init__(self, top=None):\n",
      "        self.top = top\n",
      "\n",
      "    def push(self, data):\n",
    "        self.top = Node(data, self.top)\n",
    "        self.top = Node(data, self.top)\n",
      "\n",
      "    def pop(self):\n",
      "        if self.top is None:\n",
      "            return None\n",
      "        data = self.top.data\n",
keep keep keep keep replace replace keep keep keep keep keep
 Polish stack challenge and solution (#69)

Update constraints and code. 
stacks_queues/stack/stack_solution.ipynb