判断树是否对称,每次将比对的两个节点的左右节点与右左节点对比:
l->left==r->right && l->right==r->left,一直递归到叶子节点。
代码:
bool isSame(TreeNode* l,TreeNode* r) {
if(l==NULL|| r==NULL)
{
if(l==NULL&& r==NULL)
returntrue;
else
returnfalse;
}
if(l->val==r->val)
{
returnisSame(l->left, r->right)&&isSame(l->right, r->left);
}
returnfalse;
}
bool isSymmetric(TreeNode* root) {
if(root!=NULL)
returnisSame(root->left, root->right);
returntrue;
}