101. 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。


镜像对称的二叉树

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:


非镜像对称的二叉树

说明:如果你可以运用递归和迭代两种方法解决这个问题,会很加分。

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
bool MyisSymmetric(struct TreeNode *Left, struct TreeNode *Right)
{
    if (!Left && !Right) //当左右节点都为空时,时满足条件
        return true;
    if (!Left || !Right) //当左右节点其中有一个为空时,不满足条件
        return false;
    if (Right->val != Left->val) //当左右节点不相等时,不满足条件
        return false;
    //使用递归判断左孩子的左边和右孩子的右边,左孩子的右边和右孩子的左边是否满足条件
    return MyisSymmetric(Left->left, Right->right) && MyisSymmetric(Left->right, Right->left);
}
bool isSymmetric(struct TreeNode *root)
{
    if (root == NULL) //当跟节点为空时,满足条件
        return true;
    return MyisSymmetric(root->left, root->right);
}

101.对称二叉树

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 101. 对称二叉树 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对...
    one_zheng阅读 260评论 0 0
  • 题目给定一个二叉树,检查它是否是镜像对称的。 示例,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这...
    HITZGD阅读 242评论 0 1
  • 给定一个二叉树,检查它是否是镜像对称的。 例如 代码
    vbuer阅读 102评论 0 0
  • 题目 解析 本题和之前的那道判断两个二叉树是否相等基本一致(详情点击),但是多了一点的是,题目只给了一个传根结点...
    雇个城管打天下阅读 327评论 0 0
  • 每个人的心中都住着一个桃花源 桃花开放,这就是春天的象征。 “桃花春色...
    弘_7ebd阅读 561评论 0 1