Leetcode刷题营第三十三题:对称二叉树

101. 对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。

示例 1:

Leetcode刷题营第三十三题:对称二叉树_第1张图片

输入:root = [1,2,2,3,4,4,3]
输出:true

示例 2:

Leetcode刷题营第三十三题:对称二叉树_第2张图片

输入:root = [1,2,2,null,3,null,3]
输出:false
提示:
  • 树中节点数目在范围 [1, 1000] 内
  • -100 <= Node.val <= 100

算法思路:利用递归遍历分别判断左右子树对称节点利用判断两树相同的思想。

Leetcode刷题营第三十三题:对称二叉树_第3张图片

判断两树对称:这里我们输入的分别是左右子树的根节点,然后一个从左节点开始遍历,另外一个从右节点开始遍历即可

Leetcode刷题营第三十三题:对称二叉树_第4张图片

代码实现:

bool ismirrortree(struct TreeNode* p,struct TreeNode* q){
    if(p == NULL && q == NULL){
        return true;
    }
    if(!p || !q || p->val != q->val){
        return false;
    }
    return ismirrortree(p->left,q->right) && ismirrortree(p->right,q->left);
}

bool isSymmetric(struct TreeNode* root) {
    if(!root){
        return true;
    }
    return ismirrortree(root->left,root->right);
}

这道题利用前面我们做过的题目的思想,有时候它只给了一个接口,但并不意味着你不可以在该接口中调用其他接口。

好了,本期的内容就分享到这里了,谢谢大家的点赞和收藏!

你可能感兴趣的:(Leetcode刷题营第三十三题:对称二叉树)