      "class Node:\n",
      "\n",
      "    def __init__(self, id):\n",
      "        self.id = id\n",
      "        self.visited = False\n",
      "        self.adjacent = OrderedDict()  # key = node, val = weight\n",
      "\n",
      "    def __str__(self):\n",
      "        return str(self.id)\n",
      "\n",
 
</s> remove         self.visited = False
 </s> add         self.visit_state = State.unvisited
    "        self.visit_state = State.unvisited\n",
      "class Node:\n",
      "\n",
      "    def __init__(self, id):\n",
      "        self.id = id\n",
    "        self.visit_state = State.unvisited\n",
      "        self.adjacent = OrderedDict()  # key = node, val = weight\n",
      "\n",
      "    def __str__(self):\n",
      "        return str(self.id)\n",
      "\n",
keep keep keep keep replace keep keep keep keep keep
 Added three state variable visit_state which will be useful for more advanced challenges such as topological sort. 
graphs_trees/graph/graph_solution.ipynb