/* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;

public TreeNode(int val) {
    this.val = val;

}

} / / 采用递归判断二叉树的左右子树是否堆成 若左右子树都为空,则二叉树是对称的 若左右子树一颗为空一颗不为空,肯定不对称 当左右子树都不为空时,若左右子树的父节点值不同,肯定不对称 若左右子树的父节点值相等,递归判定左子树的左子树和右子树的右子树 是否对称且左子树的右子树和右子树的左子树是否对称

*/ public class Solution {

boolean isSymmetrical(TreeNode pRoot) {
    if(pRoot == null){return true;}
    
      return check(pRoot.left,pRoot.right);
}
boolean check(TreeNode a, TreeNode b) {
    if(a == null && b == null) return true;
    if (a == null && b != null) return false;
      
    if (a != null && b == null) return false;
        
    
        if ( a.val != b.val) return false;
   
    
    return check(a.left, b.right) && check(a.right, b.left);
}

}