从链表蟒中删除赔率



我正在尝试从链表中删除所有赔率,我编写的方法在列表上完美运行,但是当应用于链表时,它会因错误而中断:

类型

错误:%不支持的操作数类型:"节点"和"整数">

我该如何解决它,我的代码如下所示:

class Node:
def __init__(self, data=None, next_node=None):
self.data = data
self.next = next_node
def __str__(self):
return str(self.data)

class LinkedList:
def __init__(self):
self.length = 0
self.head = None
def print_list(self):
node = self.head
while node is not None:
print(node, end=' ')
node = node.next
print('')
def add_at_head(self, node):
node.next = self.head
self.head = node
self.length += 1
def remove_node_after(self, node):
if node.next is not None:
temp = node.next
node.next = node.next.next
temp.next = None

def remove_odd(l):
node = l.head
for i in range(l.length):
if node % 2 == 0:
LinkedList.remove_node_after(node)
node = node.next
else:
node = node.next    
def main():
my_list = LinkedList()
my_list.add_at_head(Node(1))
my_list.add_at_head(Node(2))
my_list.add_at_head(Node(3))
remove_odd(my_list)
my_list.print_list()

main()

看看你的代码,我认为你需要改变

if node % 2 == 0:

if node.data % 2 == 0:

现在,您只是检查节点本身是否可以被 2 整除,但您应该检查数据是否可以被 2 整除。 希望有帮助。

相关内容

  • 没有找到相关文章

最新更新