其他分享
首页 > 其他分享> > BM31 对称的二叉树

BM31 对称的二叉树

作者:互联网

描述

给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)
例如:下面这棵二叉树是对称的
请添加图片描述
下面这棵二叉树不对称。
请添加图片描述
数据范围:节点数满足0≤n≤1000,节点上的值满足∣val∣≤1000
要求:空间复杂度 O(n),时间复杂度 O(n)
备注:你可以用递归和迭代两种方法解决这个问题

示例1
输入:{1,2,2,3,4,4,3}
返回值:true

示例2
输入:{8,6,9,5,7,7,5}
返回值:false

代码

/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};
*/
class Solution {
public:
    bool isSame(TreeNode *root1,TreeNode *root2){
        if(!root1&&!root2)
            return true;
        if(!root1||!root2)
            return false;
        if(root1->val!=root2->val)
            return false;
        return isSame(root1->left, root2->right)&&isSame(root1->right, root2->left);
    }
    bool isSymmetrical(TreeNode* pRoot) {
        return isSame(pRoot,pRoot);
    }

};

标签:BM31,TreeNode,val,return,二叉树,对称,root1,root2
来源: https://blog.csdn.net/qq_40279192/article/details/123240015