美文网首页
判断是不是对称的二叉树

判断是不是对称的二叉树

作者: su945 | 来源:发表于2020-04-25 23:41 被阅读0次

题目描述

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

问题分析

解题思路1

/*思路:首先根节点以及其左右子树,左子树的左子树和右子树的右子树相同
* 左子树的右子树和右子树的左子树相同即可,采用递归
* 非递归也可,采用栈或队列存取各级子树根节点
*/
class Solution {
public:
    bool isSymmetrical(TreeNode* pRoot)
    {
        if (pRoot == nullptr) {
            return true;
        }
        return comRoot(pRoot->left, pRoot->right);
    }
    bool comRoot(TreeNode* left, TreeNode* right) {
        // TODO Auto-generated method stub
        if (left == nullptr) return right == nullptr;
        if (right == nullptr) return false;
        if (left->val != right->val) return false;
        return comRoot(left->right, right->left) && comRoot(left->left, right->right);
    }
};

解题思路2

class Solution {
public:

    bool isLR(TreeNode* pRoot1, TreeNode* pRoot2)
    {
        if (pRoot1 == nullptr  )
        {
            return pRoot2 == nullptr;
        }
        //注意条件
        if (pRoot2 == nullptr)
        {
            return false;
        }
        
        if (pRoot1->val != pRoot2->val)
        {
            return false;
        }
        bool res = isLR(pRoot1->left, pRoot2->right) && isLR(pRoot1->right, pRoot2->left);
        return res;
    }

    bool isSymmetrical(TreeNode* pRoot)
    {
        if (pRoot == nullptr)
        {
            return true;
        }
        return isLR(pRoot->left,pRoot->right);
    }

};

相关文章

  • 面试题28. 对称的二叉树

    对称的二叉树 题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称...

  • 剑指offer | 对称二叉树

    对称二叉树 请实现一个函数,用来判断一棵二叉树是不是对称的如果一棵二叉树和它的镜像一样,那么它是对称的 分析:根据...

  • LeetCode 每日一题 [59] 对称的二叉树

    LeetCode 对称的二叉树 [简单] 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像...

  • 面试题28:对称二叉树

    判断一颗二叉树是不是对称二叉树 思路:该题的思路为与上一题相似,递归判断左右子树。

  • JZ-058-对称的二叉树

    对称的二叉树 题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样...

  • 对称的二叉树

    请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

  • 面试题28:对称的二叉树

    请实现一个函数,用来判断一颗二叉树是不是对称的。 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 ...

  • 101. Symmetric Tree

    判断二叉树是否对称 同时遍历左子树和右子树,判断是否对称

  • 对称的二叉树

    题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

  • (树)剑指offer--对称的二叉树

    描述:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的...

网友评论

      本文标题:判断是不是对称的二叉树

      本文链接:https://www.haomeiwen.com/subject/fstrwhtx.html