  
      def __init__(self, id):
          self.id = id
          self.visit_state = State.unvisited
          self.adjacent = {}  # key = node, val = weight
  
      def __str__(self):
          return str(self.id)
  
      def add_neighbor(self, neighbor, weight=0):
 
</s> remove     def __init__(self, id):
        self.id = id
 </s> add     def __init__(self, key):
        self.key = key </s> remove     def __str__(self):
        return str(self.id)
 </s> add     def __repr__(self):
        return str(self.key)

    def __lt__(self, other):
        return self.key < other.key </s> remove     "        self.adjacent = {}  # key = node, val = weight\n",
 </s> add     "        self.incoming_edges = 0\n",
    "        self.adj_nodes = {}  # Key = key, val = Node\n",
    "        self.adj_weights = {}  # Key = key, val = weight\n",
    "\n",
    "    def __repr__(self):\n",
    "        return str(self.key)\n", </s> remove     "    def __init__(self, id):\n",
    "        self.id = id\n",
 </s> add     "    def __init__(self, key):\n",
    "        self.key = key\n", </s> remove     "    def __str__(self):\n",
    "        return str(self.id)\n",
 </s> add     "    def __lt__(self, other):\n",
    "        return self.key < other.key\n",
        self.incoming_edges = 0
        self.adj_nodes = {}  # Key = key, val = Node
        self.adj_weights = {}  # Key = key, val = weight
  
      def __init__(self, id):
          self.id = id
          self.visit_state = State.unvisited
        self.incoming_edges = 0
        self.adj_nodes = {}  # Key = key, val = Node
        self.adj_weights = {}  # Key = key, val = weight
  
      def __str__(self):
          return str(self.id)
  
      def add_neighbor(self, neighbor, weight=0):
keep keep keep keep replace keep keep keep keep keep
 Rework graph challenge and solution (#90) 
graphs_trees/graph/graph.py