图解 | LeetCode #101 对称二叉树

????????关注后回复 “进群” ,拉你进程序员交流群????????

作者丨微木

来源丨编程狂想曲

你好,我是微木。

今天分享的内容是LeetCode中101.对称二叉树 简单 这个题目。

题目描述:

思路分析
题目要求是判断给定的二叉树是否是镜像对称的,除去根节点,剩下的就是判断给定的二叉树左子树和右子树是否是镜像对称的。因此,该题目可以转化为求解判断两棵二叉树是否是镜像对称的。
因此,基本的解题思路就是,遍历两棵二叉树,然后判断每一个节点是否是镜像对称。
而对于二叉树,其有天然的递归属性,因此,可以通过递归来求解该题目。
首先,我们以下图为例,来看下二叉树的天然递归属性。

对于整个二叉树,用阴影部分覆盖,如下图:

对于该二叉树的左子树和右子树,可分别看做是一个独立的二叉树,如下图所示。这不就符合了递归求解中的原问题和子问题是一样的这一特点吗。

在明确了二叉树的递归属性后,接着看下对于该题目来说,其递归的终止条件是什么。由于最终是对一个节点的比较,因此有以下场景:


根据上图的场景,可以完成初步的代码实现:


递归终止条件有了,接着要看的就是递归的部分了。当node1和node2的根节点是相同的时,后面要比较的就是node1的左子树和node2的右子树是否互为镜像对称且node1的的右子树和node2的左子树是否互为镜像。如下图所示:



至此,递归部分的代码就可补充完善了。完整的代码实现:


今天的分享就到这里了

错误或不足之处
欢迎留言指出
下一篇我们将学习新的内容,敬请期待

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

点击????卡片,关注后回复【面试题】即可获取

在看点这里好文分享给更多人↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值