public class tmp {
public static void main(String[] args) {
TreeNode p1 = new TreeNode(8);
TreeNode p2 = new TreeNode(6);
TreeNode p3 = new TreeNode(9);
TreeNode p4= new TreeNode(5);
TreeNode p5 = new TreeNode(7);
TreeNode p6 = new TreeNode(7);
TreeNode p7 = new TreeNode(5);
p1.left = p2;
p1.right = p3;
p2.left = p4;
p2.right = p5;
p3.left = p6;
p3.right = p7;
System.out.println(isSymmetrical(p1));
}
public static boolean isSymmetrical(TreeNode pRoot) {
if (pRoot == null){
return true;
}
return isSame(pRoot.right, pRoot.left);
}
public static boolean isSame(TreeNode t1, TreeNode t2) {
if(t1==null&&t2==null){
return true;
}
else if((t1!=null&&t2==null)||(t1==null&&t2!=null)){
return false;
}
else return isSame(t1.left, t2.right) && isSame(t1.right, t2.left)&&t1.val==t2.val;
}
public static class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
}