对于两棵彼此独立的二叉树A和B,请编写一个高效算法,检查A中是否存在一棵子树与B树的拓扑结构完全相同。
给定两棵二叉树的头结点A和B,请返回一个bool值,代表A中是否存在一棵同构于B的子树。
方法:
把二叉树打印成字符串,然后用contains函数看看是不是包含
解法1:
import java.util.*;
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}*/
public class IdenticalTree {
public boolean chkIdentical(TreeNode A, TreeNode B) {
String a1=treetostring(A);
String b1=treetostring(B);
return a1.contains(b1);
}
public String treetostring(TreeNode h){
if (h==null){
return "#!";
}
else {String str=h.val+"!";
str+=treetostring(h.left);
str+=treetostring(h.right);
return str;
}
}
// write code here
}