This problem, though called a symmetrical binary tree, but it actually quite similar to the same tree I wrote about before.
Just a few things to keep in mind, reverse the number of the characters left and right, and add a function to make the parameters two
Having said so much,let's have a look at the code
bool isSameTree(struct TreeNode* p, struct TreeNode* q)
{
if (p == NULL && q == NULL)
return true;
if (p == NULL || q == NULL)
return false;
if (p->val != q->val)
return false;
return isSameTree(p->left, q->right) && isSameTree(p->right, q->left);
}
bool isSymmetric(struct TreeNode* root) {
if (root == NULL)
return false;
return isSameTree(root->left, root->right);
}