cs61a-36链表的练习
在练习之前先创建链表类


如图所示
这个tolinked 函数的作用是把python中的可迭代对象转化为链表
练习1:def split(L)
‘’‘返回(mid,last,length)
测试实例如下
split(tolinked([1,2,3,4,5]))
(Link(3,Link(4,Link(5))),Link(5),5)
split(tolinked([1,2,3,4]))
(Link(2,Link(3,Link(4))),Link(4),4)
在这里采用双指针方法及即快慢指针法
思路图如下

代码如下

解释一下我在学习的过程中的困惑点
首先我们要达到mid移动一步,last移动两步的效果,那么可以想到用if判断偶数移动
顺着这个思路修改一下就可以了
练习2:链表的结点的插入
def interperse(list,pred,insert)
题意:如果list中的元素满足PRED,在这个元素后插入inset的一个元素
代码如下:

运行的效果如下:


浙公网安备 33010602011771号