def subTree(pRoot1,pRoot2):
result = False
if pRoot1 is not None and pRoot2 is not None:
if pRoot1.val == pRoot2.val:
result = IsTree1ContainsTree2(pRoot1,pRoot2)
if not result:
result = subTree(pRoot1.left,pRoot2)
if not result:
result = subTree(pRoot1.right,pRoot2)
return result
def IsTree1ContainsTree2(pRoot1, pRoot2):
if pRoot2 is None:
return True
if pRoot1 is None:
return False
if pRoot1.val != pRoot2.val:
return False
return IsTree1ContainsTree2(pRoot1.left, pRoot2.left) and IsTree1ContainsTree2(pRoot1.right, pRoot2.right)
root1 = TreeNode(8)
root1.left = TreeNode(8)
root1.right = TreeNode(7)
root1.left.left = TreeNode(9)
root1.left.right = TreeNode(2)
root1.left.right.left = TreeNode(4)
root1.left.right.right = TreeNode(7)
root2 = TreeNode(8)
root2.left = TreeNode(9)
root2.right = TreeNode(1)