题目描述
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
class Solution {
public:
bool isSymmetrical(TreeNode* pRoot)
{
if(pRoot==NULL)
return true;
return isSame(pRoot->left,pRoot->right);
}
bool isSame(TreeNode* mLeft,TreeNode* mRight)
{
if(mLeft == NULL&&mRight ==NULL)
return true;
if(mLeft == NULL||mRight == NULL) //如果不判断mLeft,mRight是否为NULL,则下面的mLeft->val和mRight->val会报错
return false;
if(mLeft->val != mRight->val)
return false;
return isSame(mLeft->left,mRight->right)&&isSame(mLeft->right,mRight->left);
}
};