      "    else:\n",
      "        if root.right is None:\n",
      "            root.right = Node(data)\n",
      "        else:\n",
      "            insert(root.right, data)"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 2,
 
</s> remove     "            insert(root.left, data)\n",
 </s> add     "            return insert(root.left, data)\n", </s> remove     "    * Yes"
 </s> add     "    * Yes\n",
    "* Do we have to keep track of the parent nodes?\n",
    "    * This is optional" </s> remove     "    * Yes"
 </s> add     "    * Yes\n",
    "* Do we have to keep track of the parent nodes?\n",
    "    * This is optional"
    "            return insert(root.right, data)"
      "    else:\n",
      "        if root.right is None:\n",
      "            root.right = Node(data)\n",
      "        else:\n",
    "            return insert(root.right, data)"
     ]
    },
    {
     "cell_type": "code",
     "execution_count": 2,
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_solution.ipynb