关于SubTree的错误

时间:2015-08-31 14:17:15

标签: python tree

这就是问题:你有两个大的二叉树: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,但它预计为真。我看代码但我找不到哪里错,所以可以帮助我吗?谢谢!

0 个答案:

没有答案