python 释放链表节点_如何在python中删除链表中的节点?

本文介绍了如何在Python中创建链表,并提供了删除链表中重复节点的代码。通过`createList`函数将普通列表转换为链表,然后尝试用`noDups`函数删除重复节点,但该函数未完成。作者寻求帮助完善删除重复节点的逻辑。
摘要由CSDN通过智能技术生成

到目前为止,我已经想出了从普通列表创建链接列表的代码:def createList(plist):

linkedList = None

# goes backwards, adding each element to the beginning

# of the list.

for index in range(len(plist)-1, -1, -1):

linkedList = insertValueHead(linkedList, plist[index])

return linkedList

def insertValueHead(linkedList, value):

newnode = {}

newnode["data"] = value

#set the next pointer of this new node to the head of the list, linkedList

#newnode is now the head of the list

newnode["next"] = linkedList

return newnode

def listString(linkedList):

ptr = linkedList

str1 = ''

while ptr != None:

str1 += str(ptr['data'])

ptr = ptr['next']

if ptr != None:

str1 += "->"

str1 = str1

return str1

使用这段代码,我可以通过运行createList(plist)将一个普通列表(如[1,2,3,4])转换为这个列表:

^{pr2}$

现在我要做的是删除与链接列表中另一个节点相同的任何节点。所以如果我用一个列表运行这个程序,比如[1,1,2,5,7,7,8,8,10,10,10,10],它会返回1,2,5,7,8,10。我想知道如何从我正在创建的字典(链表)中删除重复的节点。到目前为止,这是我想出的代码,但我真的不知道从这里该怎么办:def noDups(plist):

node = plist

while node['next'] != None:

if node['data'] == node['next']['data']:

del node['next']

return node

为了测试这是我使用的函数:def testNoDups():

nums = createList([1,1,2,5,7,7,8,8,10,10,10,10,10])

print noDups(nums)

非常感谢任何帮助!:)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值