以下是一个比较一般树中两个节点的所有子节点的示例代码:
class TreeNode:
def __init__(self, val):
self.val = val
self.children = []
def compare_subtree(node1, node2):
if node1 is None or node2 is None:
return False
# 比较两个节点的子节点数量
if len(node1.children) != len(node2.children):
return False
# 逐个比较两个节点的子节点值
for i in range(len(node1.children)):
if node1.children[i].val != node2.children[i].val:
return False
return True
# 创建一个示例树
root = TreeNode(1)
node2 = TreeNode(2)
node3 = TreeNode(3)
node4 = TreeNode(4)
node5 = TreeNode(5)
node6 = TreeNode(6)
root.children = [node2, node3, node4]
node3.children = [node5, node6]
# 比较树中两个节点的子节点
result = compare_subtree(node3, node4)
print(result) # 输出:False
在上面的代码中,我们定义了一个TreeNode
类来表示树的节点,其中包含一个val
属性表示节点的值,以及一个children
属性表示节点的子节点列表。
然后,我们定义了一个compare_subtree
函数来比较两个节点的子节点。首先,我们判断两个节点是否为空,如果其中一个节点为空,则返回False
。然后,我们比较两个节点的子节点数量,如果数量不相等,则返回False
。最后,我们逐个比较两个节点的子节点值,如果有任何一个子节点的值不相等,则返回False
。如果所有子节点的值都相等,则返回True
。
在示例中,我们创建了一个示例树,并调用compare_subtree
函数来比较树中的两个节点node3
和node4
的子节点。最后,我们打印比较结果,输出为False
。
下一篇:比较异步/等待与then