剑指 Offer 26. 树的子结构
思路就是,对A进行遍历,判断A的节点是否就是恰好包含B节后的根结点。(和最长回文子串思路类似~)
代码如下:
//遍历A
public boolean isSubStructure(TreeNode A, TreeNode B) {
if(B==null){
return false;
}
if(A==null){
return false;
}
if(dfs(A,B)){
return true;
}
return isSubStructure(A.left,B)||isSubStructure(A.right,B);
}
//将A的节点与B进行比较
private boolean dfs(TreeNode A, TreeNode B){
if(B == null){
return true;
}
if(A == null){
return false;
}
return A.val == B.val && dfs(A.left,B.left) && dfs(A.right,B.right);
}