Python链表AttributeError:';非类型';对象没有属性';下一个';
我正试图编写一个程序,从链表中删除重复的值Python链表AttributeError:';非类型';对象没有属性';下一个';,python,linked-list,Python,Linked List,我正试图编写一个程序,从链表中删除重复的值 class Node(object): def __init__(self, data): self.data = data self.next = None class LinkedList(object): def __init__(self): self.head = None def append(self, data): node = self.head i
class Node(object):
def __init__(self, data):
self.data = data
self.next = None
class LinkedList(object):
def __init__(self):
self.head = None
def append(self, data):
node = self.head
if(node == None):
self.head = Node(data)
return
while(node.next):
node = node.next
node.next = Node(data)
return
def removeDups(ll):
if(ll.head is None):
return
headNode = ll.head
while(headNode):
lead = headNode
while(lead.next):
if(lead.next.data == headNode.data):
lead.next = lead.next.next
lead = lead.next
headnode = headNode.next
return
list = LinkedList()
list.append(1)
list.append(2)
list.append(3)
list.append(1)
removeDups(list)
错误指向“while(lead.next):”处的行,Arribute错误'NoneType'对象没有属性'next'
我不能为同一个listnode分配两个值吗?headNode和lead指针吗?这应该适合您。您需要对removeDups功能进行两项更改:
def removeDups(ll):
if(ll.head is None):
return
headNode = ll.head
while(headNode):
lead = headNode
while(lead and lead.next):
if(lead.next.data == headNode.data):
lead.next = lead.next.next
lead = lead.next
headNode = headNode.next
return
错误来自这里:while(node.next):node=node.next node.next=node(data)。。。该类(如您所称的LinkedList)没有属性下一个该属性实际上存在于节点模型中,请尝试以下操作:Node()。nodeSetting lead to Node(None)。lead=headNode没有解决此问题。为什么lead的行为与headNode不同?在headNode上,我可以给headNode打电话。下一步,但lead不能以这种方式工作。removeDups应该适用于您的案例。以下是更改后的行:```while(headNode):=>while(lead和lead.next)headNode=headNode.next=>headNode=headNode.next``就是这样做的。非常感谢。