这就是问题:你有两个大的二叉树:T1,有数百万个节点,T2,有数百个节点。创建一个算法来确定T2是否是T1的子树。我的代码如下:
class TreeNode:
def __init__(self, val):
self.val = val
self.left, self.right = None, None
类解决方案:
# @param T1, T2: The roots of binary tree.
# @return: True if T2 is a subtree of T1, or false.
def isSubtree(self, T1, T2):
if self.tree_match(T1, T2):
return True
if T1 is None:
return False
return self.isSubtree(T1.left, T2) or self.tree_match(T1.right, T2)
def tree_match(self, t1, t2):
if t1 is None and t2 is None:
return True
if None in [t1, t2] or t1.val != t2.val:
return False
return self.tree_match(t1.left, t2.left) and self.tree_match(t1.right, t2.right)
但输入这些时: {1,#,2,#,3,#,4,#,5,#,6,#,7,#,8,#,9,#,10},{4,#,5,#,6 ,#,7,#8,#9,#,10} 它输出False,但它预计为真。我看代码但我找不到哪里错,所以可以帮助我吗?谢谢!