对称二叉树

https://leetcode.cn/problems/symmetric-tree/?envType=study-plan-v2&envId=top-100-liked

        对称二叉树即镜像二叉树。

        我们可以用r1和r2两个指针来判断。

        如果r1和r2均为空,那就true;如果r1和r2只有一个为空,就false;如果r1,r2不为空,但r1->val != r2->val,就false。如果r1->val == r2->val,就递归r1->left和r2->right,以及r1->right和r2->left。

        

bool Check(struct TreeNode* r1,struct TreeNode* r2)
{
    if(r1 == NULL && r2 == NULL)
        return true;
    else if(r1 == NULL || r2==NULL )
        return false;
    else if(r1->val != r2->val)
        return false;
    return Check(r1->left,r2->right) && Check(r1->right,r2->left);
}

bool isSymmetric(struct TreeNode* root) {
    return Check(root->left,root->right);
}

你可能感兴趣的:(二叉树OJ,二叉树,C)