需要写一个递归函数,check(root1,root2)
判断左子树和右子树是否镜像对称
左子树和右子树镜像对称的条件:左子树的左子树和右子树的右子树镜像对称,左子树的右子树和右子树的左子树镜像对称。
在此基础上需要考虑边界条件
roo1,root2是否为空,及是否为叶子节点
public class Solution {
boolean check(TreeNode root1,TreeNode root2){
if(root1==null&&root2!=null||root1!=null&&root2==null)return false;
if(root1==null&&root2==null)return true;
if(root1.left==null&&root2.left==null&&root1.right==null&&root2.right==null&&root1.val==root2.val)return true;
// if(root1.left==null&&root2.left==null&&root1.right==null&&root2.right==null&&root1.val!=root2.val)return false;
return
root1.val==root2.val&&check(root1.left,root2.right)
&&check(root1.right,root2.left);
}
boolean isSymmetrical(TreeNode pRoot) {
if(pRoot==null)return true;
return check(pRoot.left,pRoot.right);
}
}