parameters: (self, data)
docstring: inserts node at the end of linked list
docstring_summary: inserts node at the end of linked list
docstring_tokens: inserts node at the end of linked list
function: def insert_tail(self, data):
          """ inserts node at the end of linked list """
          if self.head is None:
              self.head = Node(data)
              self.head.next = self.head
              return
  
          new_node = Node(data)
          current = self.head
          while current.next is not self.head:
              current = current.next
          current.next = new_node
          new_node.next = self.head
function_tokens: def insert_tail ( self , data ) : if self . head is None : self . head = Node ( data ) self . head . next = self . head return new_node = Node ( data ) current = self . head while current . next is not self . head : current = current . next current . next = new_node new_node . next = self . head