package test;
public class Test2 {
static class Node{
int value = -1;
Node lnext = null;
Node rnext = null;
public Node(int i){
value = i;
}
@Override
public String toString() {
return value+"";
}
}
static boolean hasSubTree(Node r1, Node r2){
boolean result = false;
if(r1!=null && r2!=null){
if(r1.value==r2.value){
result=(dohas(r1.lnext, r2.lnext) && dohas(r1.rnext, r2.rnext));
if(!result){
result = hasSubTree(r1.lnext, r2);
}
if(!result){
result = hasSubTree(r1.rnext, r2);
}
}
}
return result;
}
static boolean dohas(Node r1, Node r2){
if(r2==null) return true;
if(r1==null) return false;
if(r1.value == r2.value){
if(dohas(r1.lnext, r2.lnext) && dohas(r1.rnext, r2.rnext)){
return true;
}else{
return false;
}
}
return false;
}
public static void main(String[] args) {
Node root1 = new Node(8);
Node n1 = new Node(8);
Node n2 = new Node(7);
root1.lnext = n1;
root1.rnext = n2;
Node n3 = new Node(9);
Node n4 = new Node(2);
n1.lnext = n3;
n1.rnext = n4;
Node n5 = new Node(4);
Node n6 = new Node(7);
n4.lnext = n5;
n4.rnext = n6;
Node root2 = new Node(8);
Node n21 = new Node(9);
Node n22 = new Node(2);
root2.lnext = n21;
root2.rnext = n22;
System.out.println(hasSubTree(root1, root2));
}
}
查找子树
最新推荐文章于 2022-12-07 15:50:32 发布