Python实现单向链表

2017-09-26  本文已影响0人  caiyingyi

Python实现单向链表:增删改查

参考资料:http://www.cnblogs.com/king-ding/p/pythonchaintable.html

注意:

在append方法中,第62行,判断方法如果改为“if self.is_empty()",程序66行会出现报错:“AttributeError: 'NoneType' object has no attribute 'next_node'”。

分析:

根据编写程序的逻辑,如果链表不为空(self.is_empty() == False)则,头节点也不为空。因此不应该出现这个错误。但是实际上我编写的代码并没有保证链表不为空的时候,头节点也不为空。

修改方法可以修改62行,也可以修改is_empty()方法:

def is_empty(self): return self.length ==0 or not self.head

改进:

实现迭代器

总结:

编写方法操纵链表时,注意维护链表的全局属性:self.head 和self.length

具体编写时,实际上是操纵结点,这就涉及节点的属性self.data 和self.next_node

上一篇下一篇

猜你喜欢

热点阅读