      "\n",
      "\n",
      "def insert(root, data):\n",
      "    if root is None:\n",
      "        root = Node(data)\n",
      "        return root\n",
      "    if data <= root.data:\n",
      "        if root.left is None:\n",
      "            root.left = insert(root.left, data)\n",
 
</s> remove     "            root.left = Node(data)\n",
 </s> add     "            root.left = insert(root.left, data)\n", </s> remove     "            return root.left\n",
 </s> add  </s> remove     "            return insert(root.left, data)\n",
 </s> add     "            insert(root.left, data)\n", </s> remove     "            root.right = Node(data)\n",
 </s> add     "            root.right = insert(root.right, data)\n",
    "    # Constraint: Assume we are working with valid ints\n",
      "\n",
      "\n",
      "def insert(root, data):\n",
    "    # Constraint: Assume we are working with valid ints\n",
      "    if root is None:\n",
      "        root = Node(data)\n",
      "        return root\n",
      "    if data <= root.data:\n",
      "        if root.left is None:\n",
      "            root.left = insert(root.left, data)\n",
keep keep add keep keep keep keep keep keep
 Polish bst challenge and solution (#75)

Update constraints, algorithm discussion, and code. 
graphs_trees/bst/bst_solution.ipynb