public boolean HasSubtree(TreeNode root1,TreeNode root2) {
if (root1 == null || root2 == null){
return false;
}
return preTrace(root1,root2) || HasSubtree(root1.left,root2) || HasSubtree(root1.right,root2);
}
private boolean preTrace(TreeNode root1,TreeNode root2){
if (root2 == null){
return true;
}
if (root1 == null){
return false;
}
if (root1.val != root2.val){
return false;
}
if (root2.left == null && root2.right == null){
return true;
}
return preTrace(root1.left,root2.left) && preTrace(root1.right,root2.right);
}