输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
1 # -*- coding:utf-8 -*- 2 # class TreeNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.left = None 6 # self.right = None 7 class Solution: 8 def isSubWithRoot(self,pRoot1,pRoot2): 9 if pRoot2 == None: 10 return True 11 if pRoot1 == None: 12 return False 13 if pRoot1.val != pRoot2.val: 14 return False 15 return self.isSubWithRoot(pRoot1.left,pRoot2.left) and self.isSubWithRoot(pRoot1.right,pRoot2.right) 16 17 def HasSubtree(self, pRoot1, pRoot2): 18 if pRoot1 == None or pRoot2 == None: 19 return False 20 return self.isSubWithRoot(pRoot1,pRoot2) or self.HasSubtree(pRoot1.left,pRoot2) or self.HasSubtree(pRoot1.right,pRoot2) 21 # write code here