我正在研究创建链接列表的基础知识,需要确定在替换之前和之后两者是否相等。替换正常进行,因为我要检查主要方法中的打印语句,但是替换后我不知为何无法正确比较这两者。问题出在我的equals方法中。
class MyClass:
MyList = []
def add_to_list(self):
for item in range(3):
self.MyList.append("Item " + str(item))
MyObj = []
for i in range(3):
MyObj.append(MyClass())
MyObj[i].add_to_list()
print("Object " + str(i))
print(MyObj[i].MyList)
答案 0 :(得分:2)
总是说他们是平等的吗?
您要使用相同的节点初始化currentNode
和aListNode
:
Node currentNode = firstNode;
Node aListNode = firstNode;
您可能想要这样:
Node currentNode = firstNode;
Node aListNode = aList.firstNode;
修复此问题后,您会发现它可以永远运行。一旦意识到两个列表不相等,就应该return false
。然后,您可以摆脱isEqual
。现在,您将isEqual
设置为false,但是您永远不会离开循环。
答案 1 :(得分:1)
在equals
函数中,您将同时在同一位置启动currentNode
和aListNode
。
我相信您想将currentNode
初始化为旧列表,并将aListNode
初始化为新列表,反之亦然,以便将两者进行比较,否则,您总是会从中获得真实的回报功能