题目描述
题解
class Solution {
public boolean isSubStructure(TreeNode A, TreeNode B) {
//根据题意,如果两个子节点任意为空,直接返回false
if(A==null||B==null){
return false;
}
/**
1.对当前AB节点调用判定函数
2.将A的字节点与B进行比较
**/
return diGui(A,B)||isSubStructure(A.left,B)||isSubStructure(A.right,B);
}
/**
判定函数
**/
public boolean diGui(TreeNode A,TreeNode B){
//如果B已经递归到null了,则判定为子结构
if(B==null){
return true;
}
//如果A递归为null了,而B不为null,则B不为A的子结构
if(A==null){
return false;
}
//判断 当前AB节点值是否相等,并向AB的左右子节点继续进行递归判定
return A.val==B.val&&diGui(A.left,B.left)&&diGui(A.right,B.right);
}
}