如果 2 个节点具有相同的值并且它们的子节点具有相同的值,在 python 中使用“==”运算符进行比较时,我期望输出为 True

问题描述 投票:0回答:1
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

我知道它们可以存储在不同的内存位置,但是“==”运算符比较两个对象的相等性或值。那么这两个节点有何不同呢?

python data-structures tree
1个回答
0
投票

它输出

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
© www.soinside.com 2019 - 2024. All rights reserved.