对称的二叉树

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
思路
把判断是否同一颗树的函数的递归量变一下就可以解这个题了。

class Solution {
public:
    bool isMirrorTree(TreeNode* p, TreeNode* q) 
    {
        if(p == nullptr && q == nullptr)
            return true;
        if(p == nullptr || q == nullptr)
            return false;
        if(p->val == q->val){
            return isMirrorTree(p->left, q->right) && isMirrorTree(p->right, q->left);
        }
        return false;
    }
    bool isSymmetrical(TreeNode* pRoot)
    {
        return pRoot == nullptr ? true : isMirrorTree(pRoot->left, pRoot->right);
    }
};

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