58. 对称的二叉树

Posted 落叶归根的猪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了58. 对称的二叉树相关的知识,希望对你有一定的参考价值。


            58. 对称的二叉树



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

1、思路

58. 对称的二叉树

        我们通常有三种不同的二叉树遍历算法,即前序遍历、中序遍历和后序遍历。在这三种遍历算法中,都是先遍历左子结点再遍历右子结点。

        以前序遍历为例,我们可以定义一个遍历算法,先遍历右子结点再遍历左子结点,暂且称其为前序遍历的对称遍历。

        遍历第一棵树,前序遍历的遍历序列为{8,6,5,7,6,7,5},其对称遍历的遍历序列为{8,6,5,7,6,7,5}。

        遍历第二颗树,前序遍历的遍历序列为{8,6,5,7,9,7,5},其对称遍历的遍历序列为{8,9,5,7,6,7,5}。

        可以看到,使用此方法可以区分前两棵树,第一棵树为对称树,第二颗树不是对称树。但是当使用此方法,你会发现第三颗树的前序遍历和对称前序遍历的遍历序列是一样的。

        怎么区分第三颗树呢?解决办法就是我们也要考虑NULL指针。此时,前序遍历的遍历序列{7,7,7,NULL,NULL,7,NULL,NULL,7,7,NLL,NULL,NULL},其对称遍历的遍历序列为{7,7,NULL,7,NULL,NULL,7,7,NULL,NULL,7,NULL,NULL}。因为两种遍历的序列不同,因此这棵树不是对称树。

2. 代码

58. 对称的二叉树







推荐阅读:

 求职经验:

 算法刷题:

 投资理财:

 AI很简单:

 扫盲科普:

♣♠♥◆♣♠♥◆♣♠♥◆♣♠♥◆♣♠♥◆♣♠♥◆♣♠♥◆♣♠♥◆♣♠♥◆♣♠♥◆♣♠♥◆♣♠


     

以上是关于58. 对称的二叉树的主要内容,如果未能解决你的问题,请参考以下文章

58. 对称的二叉树

58对称的二叉树

剑指offer(58)对称的二叉树

数据结构树相关代码(数据结构笔试复测Leecode牛客)

几道简单的二叉树OJ题

算法漫游指北(第十三篇):二叉树的基本概念满二叉树完全二叉树二叉树性质二叉搜索树二叉树定义二叉树的广度优先遍历