题目描述
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
分析
递归实现
代码实现
bool isSymmetrical(TreeNode* root)
{if(!root)
return true;
return isSymmetrical( root->right, root->left);
}
bool isSymmetrical(TreeNode* root1,TreeNode* root2)
{
if(!root1&&!root2)
return true;
if(!root1&&root2)
return false;
if(root1&&!root2)
return false;
return isSymmetrical( root1->left, root2->right)&&
isSymmetrical( root1->right, root2->left)&&
root2->val == root1->val;
}