剑指offer57-对称二叉树

题目描述

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
思路:p1节点应该跟p2节点相等,其中p2经过镜像操作后跟p1同一个位置。
镜像操作:每个节点的左右孩子交换位置
    bool isSymmetrical(TreeNode* pRoot)
    {
        //
        if(!pRoot) return true;
        return isSym(pRoot->left,pRoot->right);
    }
    bool isSym(TreeNode* p1,TreeNode*p2)
    {
        if(!p1&&!p2)return true;
        if(p1->val!=p2->val)return false;
        if(p1&&!p2)return false;
        if(p2&&!p1) return false;
        return isSym(p1->left,p2->right)&&isSym(p1->right,p2->left);
    }
原文地址:https://www.cnblogs.com/trouble-easy/p/12988317.html