判断二叉树子结构:
1. 先用一个深度搜索写一个判断root2是否为TreeNode子结构的函数;
2. 遍历root1的每一个结点,看是否存在以某个结点开头的输包含root2;
public boolean HasSubtree(TreeNode root1,TreeNode root2) {
if(root1 == null || root2 == null) return false;
return isSubTree(root1,root2) || HasSubtree(root1.left,root2) ||
HasSubtree(root1.right,root2);
}
boolean isSubTree(TreeNode root1, TreeNode root2){
if(root2 == null){
return true;
}else if(root1 == null){
return false;
}
if(root1.val == root2.val){
return isSubTree(root1.left,root2.left) && isSubTree(root1.right,root2.right);
}else {
return false;
}
} 
京公网安备 11010502036488号