      "    * Yes\n",
      "* Can we assume all left descendents <= n < all right descendents?\n",
      "    * Yes\n",
      "* For simplicity, can we use just a Node class without a wrapper Tree class?\n",
      "    * Yes"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
 
</s> remove     "    * Yes"
 </s> add     "    * Yes\n",
    "* Do we have to keep track of the parent nodes?\n",
    "    * This is optional" </s> remove     "            insert(root.right, data)"
 </s> add     "            return insert(root.right, data)" </s> remove     "            insert(root.left, data)\n",
 </s> add     "            return insert(root.left, data)\n",
    "    * Yes\n",
    "* Do we have to keep track of the parent nodes?\n",
    "    * This is optional"
      "    * Yes\n",
      "* Can we assume all left descendents <= n < all right descendents?\n",
      "    * Yes\n",
      "* For simplicity, can we use just a Node class without a wrapper Tree class?\n",
    "    * Yes\n",
    "* Do we have to keep track of the parent nodes?\n",
    "    * This is optional"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
keep keep keep keep replace keep keep keep keep keep
 Updated bst to keep track of its parent and to return the node it inserts. 
graphs_trees/bst/bst_challenge.ipynb