/* 解题思路: 判断一个树是否对称,首先要判断左右孩子是否对称相等,还需要判断左孩子的左子树是否和右孩子的右子树对称,左孩子的右子树是否和右孩子的左子树对称。 */
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;
}
else
{
return isSameTree(p->left,q->right)&&isSameTree(p->right,q->left);
}
}
bool isSymmetric(struct TreeNode* root)
{
if(root==NULL)
{
return true;
}
return isSameTree(root->right,root->left);
}