美文网首页
C++判断二叉树是否为对称二叉树

C++判断二叉树是否为对称二叉树

作者: crazyVicky | 来源:发表于2020-01-13 16:04 被阅读0次

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

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

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

二叉树结构: 

方法一:递归

如果一个树的左子树与右子树镜像对称,那么这个树是对称的。

递归结束条件:

1. 都为空指针则返回true

2. 只有一个为空则返回false

递归过程:

1. 判断两个指针当前节点值是否相等

2. 判断A的左子树与B的右子树是否对称

3. 判断A的右子树与B的左子树是否对称

方法二:迭代

利用队列进行迭代,队列中每两个连续的结点应该是相等的,而且它们的子树互为镜像。每次提取两个结点并比较它们的值,之后将两个结点的左右子结点按相反的顺序插入队列中,当队列为空时,或检测到树不对称(即从队列中取出两个不相等的连续结点)时结束。

相关文章

  • 第九天的leetcode刷题

    今天的题目是判断是否为对称二叉树:101. 对称二叉树[https://leetcode-cn.com/probl...

  • 关于二叉树的算法题

    前序遍历中序遍历后序遍历判断是否是平衡二叉树判断是否是对称二叉树判断二叉树高度按照层遍历二叉树判断二叉树宽度

  • 101. Symmetric Tree

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

  • Leetcode.101.Symmetric Tree

    题目 给定一个二叉树, 判断这个二叉树是否对称. 思路 判断这个数是否对称: 将根节点的右边子树所有左右节点都交换...

  • 26.对称二叉树

    判断一个二叉树是否为对称二叉树。对称二叉树的定义是:一个树的镜像和本身相同。 分析:对二叉树进行前序遍历,和一种特...

  • Symmetric Tree对称树

    Easy 判断一棵二叉树是否对称 Example, 二叉树[1,2,2,3,4,4,3] 对称:1/ 2 2/...

  • 1 二叉树的最近公共祖先(leetcode 236) 2 判断是否为平衡二叉树 3 判断二叉树是否为满二叉树 4 ...

  • Day49:是否为对称二叉树

    def is_Symmetic(root):'''Day49:是否为对称二叉树给定一个二叉树,检查它是否是镜像对称...

  • 二叉树的层次遍历要先掌握 有一些题目是相似的比如:求二叉树的深度和是否为平衡二叉树;是否是相同的二叉树,是否为对称...

  • [LeetCode OJ]- SymmetricTree

    题目要求:判断一颗二叉树是否为左右对称的。这里的左右对称不仅要求结构上左右对称,而且节点的值也应该满足左右对称。 ...

网友评论

      本文标题:C++判断二叉树是否为对称二叉树

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