python单向链表的实现_Python实现单向链表

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

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

a93a3ca75435

a93a3ca75435

a93a3ca75435

注意:

在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

a93a3ca75435

a93a3ca75435

改进:

实现迭代器

a93a3ca75435

a93a3ca75435

总结:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值