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