      "    * Else, recursively call insert on the right child\n",
      "\n",
      "Complexity:\n",
      "\n",
      "* Time: O(log n)\n",
      "* Space: O(1)"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
 
</s> remove     "* 1, 2, 3, 4, 5 -> 1, 2, 3, 4, 5"
 </s> add     "* 1, 2, 3, 4, 5 -> 1, 2, 3, 4, 5\n",
    "\n",
    "If the `root` input is `None`, return a tree with the only element being the new root node." </s> remove     "* 1, 2, 3, 4, 5 -> 1, 2, 3, 4, 5"
 </s> add     "* 1, 2, 3, 4, 5 -> 1, 2, 3, 4, 5\n",
    "\n",
    "If the `root` input is `None`, return a tree with the only element being the new root node." </s> remove     "        node = Node(1)\n",
 </s> add     "        node = insert(None, 1)\n",
    "* Time: O(h), where h is the height of the tree\n",
    "    * In a balanced tree, the height is O(nlogn)\n",
    "    * In the worst case we have a linked list structure with O(n)\n",
    "* Space: O(m), where m is the recursion depth, or O(1) if using an iterative approach"
      "    * Else, recursively call insert on the right child\n",
      "\n",
      "Complexity:\n",
      "\n",
    "* Time: O(h), where h is the height of the tree\n",
    "    * In a balanced tree, the height is O(nlogn)\n",
    "    * In the worst case we have a linked list structure with O(n)\n",
    "* Space: O(m), where m is the recursion depth, or O(1) if using an iterative approach"
    "* Time: O(h), where h is the height of the tree\n",
    "    * In a balanced tree, the height is O(nlogn)\n",
    "    * In the worst case we have a linked list structure with O(n)\n",
    "* Space: O(m), where m is the recursion depth, or O(1) if using an iterative approach"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
keep keep keep keep replace replace keep keep keep keep keep
 Polish bst challenge and solution

Add root is None input test case.  Update time and space complexity discussion. 
graphs_trees/bst/bst_solution.ipynb