class Solution {
public boolean isSubStructure(TreeNode A, TreeNode B) {
if(B == null || A == null) return false;
if(A.val == B.val && dfs(A.left, B.left) && dfs(A.right, B.right)) return true;
// 判断B在左子树还是右子树
return isSubStructure(A.left, B) || isSubStructure(A.right, B);
}
public boolean dfs(TreeNode node1, TreeNode node2){
// 先对node2进行判断,为空说明是子结构
// 然后对node1进行判断,如果为空说明不是
if(node2 == null) return true;
if(node1 == null) return false;
if(node1.val == node2.val){
return dfs(node1.left, node2.left)&&dfs(node1.right, node2.right);
}else{
return false;
}
}
}