def__str__(self): """打印链表""" result = [] current = self.__head while current: result.append(str(current.data)) current = current.next return" -> ".join(result)
defremove(self, index): """删除元素""" if index < 0or index >= self.__size: raise IndexError if index == 0: self.__head = self.__head.next else: # 找到index-1位置的节点,然后让index-1位置的节点的next指向index位置的节点的next node = self.__head for i inrange(index - 1): node = node.next node.next = node.next.next self.__size -= 1
修改元素
1 2 3 4 5 6 7 8
defset(self, index, item): """修改元素""" if index < 0or index >= self.__size: raise IndexError node = self.__head for i inrange(index): node = node.next node.data = item
访问元素
1 2 3 4 5 6 7 8
defget(self, index): """访问元素""" if index < 0or index >= self.__size: raise IndexError node = self.__head for i inrange(index): node = node.next return node.data
查找元素
1 2 3 4 5 6 7 8
deffind(self, item): """查找元素""" node = self.__head while node: if node.data == item: returnTrue node = node.next returnFalse
def__str__(self): """打印链表""" result = [] current = self.__head while current: result.append(str(current.data)) current = current.next return" -> ".join(result)
defremove(self, index): """删除元素""" if index < 0or index >= self.__size: raise IndexError if index == 0: self.__head = self.__head.next else: # 找到index-1位置的节点,然后让index-1位置的节点的next指向index位置的节点的next node = self.__head for i inrange(index - 1): node = node.next node.next = node.next.next self.__size -= 1
defset(self, index, item): """修改元素""" if index < 0or index >= self.__size: raise IndexError node = self.__head for i inrange(index): node = node.next node.data = item
defget(self, index): """访问元素""" if index < 0or index >= self.__size: raise IndexError node = self.__head for i inrange(index): node = node.next return node.data
deffind(self, item): """查找元素""" node = self.__head while node: if node.data == item: returnTrue node = node.next returnFalse