58、对称的二叉树

题目描述
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

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);
    }
};

你可能感兴趣的:(58、对称的二叉树)