docs: def simplex_identify_cycle(self, t, k, l):
          '''
          API:
              identify_cycle(self, t, k, l)
          Description:
              Identifies and returns to the pivot cycle, which is a list of
              nodes.
          Pre:
              (1) t is spanning tree solution, (k,l) is the entering arc.
          Input:
              t: current spanning tree solution
              k: tail of the entering arc
              l: head of the entering arc
          Returns:
              List of nodes in the cycle.
          '''
          i = k
          j = l
          cycle = []
          li = [k]
          lj = [j]
          while i is not j:
              depth_i = t.get_node(i).get_attr('depth')
              depth_j = t.get_node(j).get_attr('depth')
              if depth_i > depth_j:
                  i = t.get_node(i).get_attr('pred')
                  li.append(i)
              elif depth_i < depth_j:
                  j = t.get_node(j).get_attr('pred')
                  lj.append(j)
              else:
                  i = t.get_node(i).get_attr('pred')
                  li.append(i)
                  j = t.get_node(j).get_attr('pred')
                  lj.append(j)
          cycle.extend(lj)
          li.pop()
          li.reverse()
          cycle.extend(li)
          # l is beginning k is end
          return cycle