题目描述
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 思路: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);
}