docs: def reroot(self, s):
          """
          s = 3
          s = 'B'
  
          Let os denote any occurrence of s.
          Splice out the first part of the sequence ending with the occurrence before os,
          remove its first occurrence (or),
          and tack this on to the end of the sequence which now begins with os.
          Add a new occurrence os to the end.
          """
          # Splice out the first part of the sequence ending with the occurrence before os
          # remove its first occurrence (or),
          o_s1 = self.first_lookup[s]
          splice1 = self.tour[1:o_s1]
          rest = self.tour[o_s1 + 1:]
          new_tour = [s] + rest + splice1 + [s]
          new_tree = TestETT.from_tour(new_tour, fast=self.fast)
          return new_tree