* struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param pRoot TreeNode类 
 * @return bool布尔型
 */
#include<stdbool.h>
bool check(struct TreeNode*left,struct TreeNode*right)
{
    if(left==NULL&&right==NULL)return true;
    if(left==NULL&&right!=NULL)return false;
    if(left!=NULL&&right==NULL)return false;
    if(left->val==right->val)
    {
        return check(left->left,right->right)&&check(left->right,right->left);
    }
    return false;
}
bool isSymmetrical(struct TreeNode* pRoot ) {
    // write code here
    if(pRoot==NULL)return true;
    
    return check(pRoot->left,pRoot->right);
}