In C
\n/**\n * Definition for a binary tree node.\n * struct TreeNode {\n *     int val;\n *     struct TreeNode *left;\n *     struct TreeNode *right;\n * };\n */\n
```\n/**\n * Definition for a binary tree node.\n * struct TreeNode {\n *     int val;\n *     struct TreeNode *left;\n *     struct TreeNode *right;\n * };\n */\n\nbool parallel_traverse(struct TreeNode* a, struct TreeNode* b)\n{\n    if (a == NULL && b == NULL)\n        return true;\n \n    if (a == NULL || b == NULL)\n        return false;\n\n    if (a->val != b->val)\n        return false;\n    \n    return parallel_traverse(a->left, b->right) && parallel_traverse(a->right, b->left);\n}\n\nbool isSymmetric(struct TreeNode* root)\n{\n    if (root == NULL)\n        return true;\n    return parallel_traverse(root->left, root->right);\n}\n```
['C']