/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/classSolution{publicbooleanisSymmetric(TreeNoderoot){returnisMirror(root,root);}publicbooleanisMirror(TreeNodet1,TreeNodet2){if(t1==null&&t2==null)returntrue;if(t1==null||t2==null)returnfalse;return(t1.val==t2.val)&&isMirror(t1.right,t2.left)&&isMirror(t1.left,t2.right);}}
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/classSolution{publicbooleanisSymmetric(TreeNoderoot){if(root==null)returntrue;Queue<TreeNode>q=newLinkedList<>();q.add(root);q.add(root);while(!q.isEmpty()){TreeNodet1=q.poll();TreeNodet2=q.poll();if(t1==null&&t2==null)continue;if(t1==null||t2==null)returnfalse;if(t1.val!=t2.val)returnfalse;q.add(t1.left);q.add(t2.right);q.add(t1.right);q.add(t2.left);}returnq.isEmpty();}}