My C++ Accepted code in 16ms with iteration solution
/**\n     * Definition for binary tree\n     * struct TreeNode {\n     *     int val;\n     *     TreeNode *left;\n     *     TreeNode *right;\n     *     TreeN
    /**\n     * Definition for binary tree\n     * struct TreeNode {\n     *     int val;\n     *     TreeNode *left;\n     *     TreeNode *right;\n     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}\n     * };\n     */\n    class Solution {\n    public:\n        bool isSymmetric(TreeNode *root) {\n            TreeNode *left, *right;\n            if (!root)\n                return true;\n            \n            queue<TreeNode*> q1, q2;\n            q1.push(root->left);\n            q2.push(root->right);\n            while (!q1.empty() && !q2.empty()){\n                left = q1.front();\n                q1.pop();\n                right = q2.front();\n                q2.pop();\n                if (NULL == left && NULL == right)\n                    continue;\n                if (NULL == left || NULL == right)\n                    return false;\n                if (left->val != right->val)\n                    return false;\n                q1.push(left->left);\n                q1.push(left->right);\n                q2.push(right->right);\n                q2.push(right->left);\n            }\n            return true;\n        }\n    };
[]