1.一个二叉树是对称的当且仅当根节点的左子树和右子树是镜像对称的。
2.两个二叉树镜像对称当且仅当一个二叉树的左子树与另一个二叉树的右子树镜像对称,同时该二叉树的右子树与另一二叉树的左子树镜像对称。
bool isSymmetric(TreeNode *root)
{
if (root == nullptr)
{
return true;
}
return isSymmetric_extern(root->left, root->right);
}
bool isSymmetric_extern(TreeNode *root1, TreeNode *root2)
{
if (root1 == nullptr&&root2 == nullptr)
{
return true;
}
if ((root1 == nullptr&&root2 != nullptr) || root1 != nullptr&&root2 == nullptr)
{
return false;
}
if (root1->val != root2->val)
{
return false;
}
return isSymmetric_extern(root1->left, root2->right) && isSymmetric_extern(root1->right, root2->left);
}