# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def HasSubtree(self, pRoot1, pRoot2): # write code here if not pRoot1 or not pRoot2: return False def hasequal(pRoot1, pRoot2): if pRoot2 == None: return True if pRoot1 == None: return False if pRoot1.val == pRoot2.val: if pRoot2.left == None: leftNode = True else: leftNode = hasequal(pRoot1.left, pRoot2.left) if pRoot2.right == None: rightNone = True else: rightNone = hasequal(pRoot1.right, pRoot2.right) return rightNone and leftNode return False if pRoot1.val == pRoot2.val: ret = hasequal(pRoot1, pRoot2) if ret: return True ret = self.HasSubtree(pRoot1.left, pRoot2) if ret: return True ret = self.HasSubtree(pRoot1.right, pRoot2) return ret