思路:dfs函数用来判断B中所有节点是否与A中当前节点开始的数相同,然后主函数判断B是不是A的子结构
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isSubStructure(self, A: TreeNode, B: TreeNode) -> bool:
def dfs(a, b):
if not b: return True
if not a: return False
return a.val == b.val and dfs(a.left, b.left) and dfs(a.right, b.right)
if not A or not B: return False
return dfs(A, B) or self.isSubStructure(A.left, B) or self.isSubStructure(A.right, B)