Short and clean java iterative solution
 public boolean isSymmetric(TreeNode root) {\n            Queue<TreeNode> q = new LinkedList<TreeNode>();\n            if(root == null) return true;\n          
     public boolean isSymmetric(TreeNode root) {\n            Queue<TreeNode> q = new LinkedList<TreeNode>();\n            if(root == null) return true;\n            q.add(root.left);\n            q.add(root.right);\n            while(q.size() > 1){\n                TreeNode left = q.poll(),\n                         right = q.poll();\n                if(left== null&& right == null) continue;\n                if(left == null ^ right == null) return false;\n                if(left.val != right.val) return false;\n                q.add(left.left);\n                q.add(right.right);\n                q.add(left.right);\n                q.add(right.left);            \n            }\n            return true;\n        }
[]