docs: def delete_node(self, node_id):
          """Removes the node identified by node_id from the graph."""
          node = self.get_node(node_id)
  
          # Remove all edges from the node
          for e in node['edges']:
              self.delete_edge_by_id(e)
  
          # Remove all edges to the node
          edges = [edge_id for edge_id, edge in list(self.edges.items()) if edge['vertices'][1] == node_id]
          for e in edges:
              self.delete_edge_by_id(e)
  
          # Remove the node from the node list
          del self.nodes[node_id]
  
          self._num_nodes -= 1