package tree;
import java.io.ObjectInputStream.GetField;
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import reflect.AA;
import reflect.BB;
public class Test {
public Test(){
}
private TreeNode tn = new TreeNode();
private TreeNode getTree(TreeNode t1,TreeNode t2){
compireTreeNode(t1, t2, tn);
return tn;
}
private boolean compireTreeNode(TreeNode tn1, TreeNode tn2, TreeNode tn){
boolean flag = false;
if(tn1.getId() == tn2.getId()){
System.out.println(tn1.getId());
tn.setId(tn1.getId());
if (tn1.getChildren() != null && tn2.getChildren() != null){
for (TreeNode c1 : tn1.getChildren()) {
for (TreeNode c2 : tn2.getChildren()) {
TreeNode child = new TreeNode();
boolean flag2 = compireTreeNode(c1, c2, child);
if (flag2){
if (tn.getChildren() == null){
tn.setChildren(new ArrayList<TreeNode>());
}
tn.getChildren().add(child);
}
}
}
}
flag = true;
}
return flag;
}
/**
* @param args
*/
public static void main(String[] args) {
TreeNode tn1 = new TreeNode();
tn1.setId(1);
List<TreeNode> c1 = new ArrayList<TreeNode>();
TreeNode c11 = new TreeNode();
c11.setId(11);
TreeNode c12 = new TreeNode();
c12.setId(12);
c1.add(c11);
c1.add(c12);
tn1.setChildren(c1);
TreeNode tn2 = new TreeNode();
tn2.setId(1);
List<TreeNode> c2 = new ArrayList<TreeNode>();
TreeNode c21 = new TreeNode();
c21.setId(11);
TreeNode c22 = new TreeNode();
c22.setId(22);
c2.add(c21);
c2.add(c22);
tn2.setChildren(c2);
Test test = new Test();
// TreeNode tn = test.getTree(tn1, tn2);
//
// System.out.println(tn);
TreeNode ttn2 = test.getTree(test.getTn1(), test.getTn2());
System.out.println(ttn2);
}
public TreeNode getTn1(){
TreeNode tn1 = new TreeNode();
tn1.setId(1);
List<TreeNode> c1 = new ArrayList<TreeNode>();
TreeNode c11 = new TreeNode();
c11.setId(11);
TreeNode c111 = new TreeNode();
c111.setId(111);
TreeNode c112 = new TreeNode();
c112.setId(112);
List<TreeNode> c111111 = new ArrayList<TreeNode>();
c111111.add(c111);
c111111.add(c112);
c11.setChildren(c111111);
c1.add(c11);
TreeNode c12 = new TreeNode();
c12.setId(12);
c1.add(c12);
tn1.setChildren(c1);
return tn1;
}
public TreeNode getTn2(){
TreeNode tn2 = new TreeNode();
tn2.setId(1);
List<TreeNode> c2 = new ArrayList<TreeNode>();
TreeNode c21 = new TreeNode();
c21.setId(11);
TreeNode c211 = new TreeNode();
c211.setId(111);
List<TreeNode> c111111 = new ArrayList<TreeNode>();
c111111.add(c211);
c21.setChildren(c111111);
TreeNode c22 = new TreeNode();
c22.setId(22);
c2.add(c21);
c2.add(c22);
tn2.setChildren(c2);
return tn2;
}
}