图解 | LeetCode #101 对称二叉树
Posted 程序员大咖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解 | LeetCode #101 对称二叉树相关的知识,希望对你有一定的参考价值。
????????关注后回复 “进群” ,拉你进程序员交流群????????
作者丨微木
来源丨编程狂想曲
你好,我是微木。
今天分享的内容是LeetCode中101.对称二叉树 简单 这个题目。
题目描述:
思路分析
题目要求是判断给定的二叉树是否是镜像对称的,除去根节点,剩下的就是判断给定的二叉树左子树和右子树是否是镜像对称的。因此,该题目可以转化为求解判断两棵二叉树是否是镜像对称的。
因此,基本的解题思路就是,遍历两棵二叉树,然后判断每一个节点是否是镜像对称。
而对于二叉树,其有天然的递归属性,因此,可以通过递归来求解该题目。
首先,我们以下图为例,来看下二叉树的天然递归属性。
对于整个二叉树,用阴影部分覆盖,如下图:
对于该二叉树的左子树和右子树,可分别看做是一个独立的二叉树,如下图所示。这不就符合了递归求解中的原问题和子问题是一样的这一特点吗。
在明确了二叉树的递归属性后,接着看下对于该题目来说,其递归的终止条件是什么。由于最终是对一个节点的比较,因此有以下场景:
根据上图的场景,可以完成初步的代码实现:
递归终止条件有了,接着要看的就是递归的部分了。当node1和node2的根节点是相同的时,后面要比较的就是node1的左子树和node2的右子树是否互为镜像对称且node1的的右子树和node2的左子树是否互为镜像。如下图所示:
至此,递归部分的代码就可补充完善了。完整的代码实现:
今天的分享就到这里了
错误或不足之处
欢迎留言指出
下一篇我们将学习新的内容,敬请期待
-End-
最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!
点击????卡片,关注后回复【面试题
】即可获取
在看点这里好文分享给更多人↓↓
以上是关于图解 | LeetCode #101 对称二叉树的主要内容,如果未能解决你的问题,请参考以下文章