题目
题目给出,空树不是任意数的子结构。递归的时候这是一个出口条件。
大致思路:
- 前序遍历树A,判断以当前遍历的节点形成的子树是否包含树B
- 判断A左子树是否包含树B
- 判断A右子树是否包含树B
recur
判断A树以当前节点为根节点的树是否包含树B
class Solution:
def isSubStructure(self, A: TreeNode, B: TreeNode) -> bool:
def recur(A,B):
if not B:
return True
if not A:
return False
if A.val != B.val:
return False
else:
return recur(A.left,B.left) and recur(A.right,B.right)
return bool (A and B) and (recur(A, B) or self.isSubStructure(A.left,B) or self.isSubStructure(A.right,B))