1.题目
给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)
例如:下面这棵二叉树是对称的
2.代码
public class Test {
public static class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
public static boolean istrue(TreeNode r1,TreeNode r2){
if (r1==null&&r2==null){
return true;
}
if (r1!=null&&r2==null){
return false;
}
if (r1==null&&r2!=null){
return false;
}
if (r1.val!=r2.val){
return false;
}
boolean t =true;
t = istrue(r1.left,r2.right);
if(t==false){
return false;
}
t = istrue(r1.right,r2.left);
return t;
}
static boolean isSymmetrical(TreeNode pRoot) {
return istrue(pRoot.left,pRoot.right);
}
public static void main(String[] args) {
TreeNode r1 = new TreeNode(1);
TreeNode r2 = new TreeNode(2);
TreeNode r3 = new TreeNode(3);
r1.left=r2;r1.right = r3;
System.out.println(isSymmetrical(r1));
}
}