如何编写TypeScript代码判断一棵二叉树是否对称?
- 内容介绍
- 文章标签
- 相关推荐
本文共计934个文字,预计阅读时间需要4分钟。
目录+前言+实现思路+实现代码+示例代码+前言+如果一颗二叉树和它的镜像一样,那么它就是对称的。实现一个函数用于判断一颗二叉树是否对称,你会怎么做?+本文将分享一种解决方案。
目录
- 前言
- 实现思路
- 实现代码
- 示例代码
前言
如果一颗二叉树和它的镜像一样,那么它就是对称的。实现一个函数用于判断一颗二叉树是否对称,你会怎么做?
本文将分享一种解决方案,欢迎各位感兴趣的开发者阅读本文。
实现思路
在上一篇文章二叉树的镜像中我们知道了此问题的解决方案是前序遍历,那么我们可以修改下前序遍历算法,父节点遍历后,先遍历它的右子节点,再遍历它的左子节点,我们把这种算法称为:对称前序遍历
如下图所示的两棵树,我们分别列举下两种遍历的结果:
- 树A:
- 前序遍历:8, 6, 5, 7, 6, 7, 5
- 对称前序遍历:8, 6, 5, 7, 6, 7, 5
- 树B:
- 前序遍历:8, 6, 5, 7, 9, 7, 5
- 对称前序遍历:8, 9, 5, 7, 6, 7, 5
经过对比后,我们发现树A的两种遍历方法得到的结果是一样的,那么它就是对称的;树B的结果不同,它就不是对称的。
本文共计934个文字,预计阅读时间需要4分钟。
目录+前言+实现思路+实现代码+示例代码+前言+如果一颗二叉树和它的镜像一样,那么它就是对称的。实现一个函数用于判断一颗二叉树是否对称,你会怎么做?+本文将分享一种解决方案。
目录
- 前言
- 实现思路
- 实现代码
- 示例代码
前言
如果一颗二叉树和它的镜像一样,那么它就是对称的。实现一个函数用于判断一颗二叉树是否对称,你会怎么做?
本文将分享一种解决方案,欢迎各位感兴趣的开发者阅读本文。
实现思路
在上一篇文章二叉树的镜像中我们知道了此问题的解决方案是前序遍历,那么我们可以修改下前序遍历算法,父节点遍历后,先遍历它的右子节点,再遍历它的左子节点,我们把这种算法称为:对称前序遍历
如下图所示的两棵树,我们分别列举下两种遍历的结果:
- 树A:
- 前序遍历:8, 6, 5, 7, 6, 7, 5
- 对称前序遍历:8, 6, 5, 7, 6, 7, 5
- 树B:
- 前序遍历:8, 6, 5, 7, 9, 7, 5
- 对称前序遍历:8, 9, 5, 7, 6, 7, 5
经过对比后,我们发现树A的两种遍历方法得到的结果是一样的,那么它就是对称的;树B的结果不同,它就不是对称的。

