/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ bool checkSymmetric(struct TreeNode *left, struct TreeNode *right) { if (!left || !right) return left == right; if (left->val != right->val) return 0; return checkSymmetric(left->left, right->right) && checkSymmetric(left->right, right->left); } bool isSymmetric(struct TreeNode* root){ return root == NULL || checkSymmetric(root->left, root->right); }