def append(self, item):
        """ append(item) 链表尾部添加元素"""
        node = Node(item)
        # 空节点的时候
        if self.is_empty():
            self.head = node

        # 单节点的时候
        elif not self.head.next:
            self.head.next = node
        else:
            tmp_node = self.head
            while tmp_node.next:
                tmp_node = tmp_node.next

            tmp_node.next = node
Exemple #2
0
    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
Exemple #3
0
    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