docs: def relabel(self, i):
          '''
          API: relabel(self, i)
          Description:
          Used by max_flow_preflowpush() method for relabelling node i.
          Input:
              i: Node that is being relabelled.
          Post:
              'distance' attribute of node i is updated.
          '''
          min_distance = 2*len(self.get_node_list()) + 1
          for j in self.get_neighbors(i):
              if (self.get_node_attr(j, 'distance') < min_distance and
                  (self.get_edge_attr(i, j, 'flow') <
                   self.get_edge_attr(i, j, 'capacity'))):
                  min_distance = self.get_node_attr(j, 'distance')
          for j in self.get_in_neighbors(i):
              if (self.get_node_attr(j, 'distance') < min_distance and
                  self.get_edge_attr(j, i, 'flow') > 0):
                  min_distance = self.get_node_attr(j, 'distance')
          self.set_node_attr(i, 'distance', min_distance + 1)