题目描述
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
思路:先判断当前节点值是否相同,然后递归判断左右子树是否相同。
public class Solution {
boolean isSymmetrical(TreeNode pRoot)
{
return isMirror(pRoot,pRoot);
}
private boolean isMirror(TreeNode r1,TreeNode r2){
if(r1==null&&r2==null) return true;
if(r1==null||r2==null)return false;
return (r1.val==r2.val)&&isMirror(r1.left,r2.right)&&isMirror(r1.right,r2.left);
}
}