class Node:
def __init__(self,left=None,right=None,val=0):
self.left=left
self.right=right
self.val=val
#creating a tree
abc=Node(val=1)
abc.left=Node(val=2)
abc.right=Node(val=2)
abc.left.left=Node(val=3)
abc.left.right=Node(val=3)
abc.right.left=Node(val=3)
abc.right.right=Node(val=3)
print(abc.left == abc.right)
Output: False
我知道它们可以存储在不同的内存位置,但是“==”运算符比较两个对象的相等性或值。那么这两个节点有何不同呢?
它输出
False
的原因是您将两个对象都创建为distinct。 ==
运算符检查 value 以及 object 因此,由于它们是不同的,它将返回 False
要制作
abc.left==abc.right -> True
,您需要将两者分配为相同的object
.
代码:
class Node:
def __init__(self,left=None,right=None,val=0):
self.left=left
self.right=right
self.val=val
abc=Node(val=1)
abc.left=Node(val=2)
abc.right=abc.left # Assigning abc.right as the same object as abc.left
abc.left.left=Node(val=3)
abc.left.right=Node(val=3)
abc.right.left=Node(val=3)
abc.right.right=Node(val=3)
print(abc.left == abc.right) #True