      "        visit_func(node)\n",
      "        for adjacent_node in node.adjacent:\n",
      "            if not adjacent_node.visited:\n",
      "                queue.append(adjacent_node)\n",
      "                adjacent_node.visited = True"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
 
</s> remove     "            if not adjacent_node.visited:\n",
 </s> add     "            if adjacent_node.visit_state == State.unvisited:\n", </s> remove     "    root.visited = True\n",
 </s> add     "    root.visit_state = State.visited\n", </s> remove     "                adj_node.visited = True\n",
 </s> add     "                adj_node.visit_state = State.visited\n", </s> remove     "        if not node.visited:\n",
 </s> add     "        if node.visit_state == State.unvisited:\n", </s> remove     "            if not adj_node.visited:\n",
 </s> add     "            if adj_node.visit_state == State.unvisited:\n",
    "                adjacent_node.visit_state = State.visited"
      "        visit_func(node)\n",
      "        for adjacent_node in node.adjacent:\n",
      "            if not adjacent_node.visited:\n",
      "                queue.append(adjacent_node)\n",
    "                adjacent_node.visit_state = State.visited"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
keep keep keep keep replace keep keep keep keep keep
 Fixed issues with node state. 
graphs_trees/graph_bfs/bfs_solution.ipynb