def add(self, item): """add(item) 链表头部添加元素""" node = Node(item) if self.is_empty(): self.head = node return node.next = self.head self.head = node
def append(self, item): """ append(item) 链表尾部添加元素""" node = Node(item) # 空节点的时候 if self.is_empty(): self.head = node # 自己指向自己 self.head.next = self.head # 单节点的时候 elif self.head.next == self.head: self.head.next = node node.next = self.head else: tmp_node = self.head while tmp_node.next != self.head: tmp_node = tmp_node.next tmp_node.next = node node.next = self.head
def add(self, item): """add(item) 链表头部添加元素""" node = Node(item) if self.is_empty(): self.head = node self.head.next = self.head return tmp_node = self.head while tmp_node.next != self.head: tmp_node = tmp_node.next node.next = self.head tmp_node.next = node self.head = node
def insert(self, pos, item): """insert(pos, item) 指定位置添加元素""" node = Node(item) if pos <= 1: self.add(node) elif pos >= self.length(): self.append(node) else: count = 1 pre_node = self.head next_node = self.head while next_node.next != self.head: pre_node = next_node next_node = next_node.next count += 1 if count == pos: break pre_node.next = node node.next = next_node