当前位置: 首页 > news >正文

Leecode101 ——对称二叉树

对称二叉树:Leecode 101

leecode 101 对称二叉树

根据题目描述,首先想清楚,对称二叉树要比较的是哪两个节点。对于二叉树是否对称,要比较的是根节点的左子树与根节点的右子树是不是相互翻转的,其实也就是比较两个树,即根节点的左右子树,所以在遍历的过程中,也要同时遍历两棵树。(参考:代码随想录)
那要怎么比较呢,比较的是两个子树的里侧和外侧元素是否相等。

在这里插入图片描述

使用递归法的三部曲:

1.确定递归的参数和返回值

因为要比较的是根节点的左右子树是否相互翻转的,进而判断是否对称二叉树,所以要比较两个树,参数即左子树节点和右子树节点,返回值也就是boolean类型。

2.确定终止条件
根据上面的条件可以总结出,终止条件分为以下几种情况:

节点为空的情况有:

(1)判断根节点的左节点是否为空,如果左右节点都为空,那就是对称二叉树,返回true
(2)当其中一个节点为空另一个不为空则不是对称二叉树,return false

此时已经排除掉了节点为空的情况,那么剩下的就是左右节点不为空:

(3)若左右节点不为空,那么剩下的就是比较左右的数值情况:
若左右节点不为空,左子树的值不等于右子树的值也不是对称二叉树。return false
3.确定单层递归逻辑

单层递归逻辑就是处理左右节点都不为空且数值相同的情况,
(1)比较二叉树外侧是否相等,即传入左节点的左孩子和右节点的右孩子;
(2)比较内测是否相等,传入左节点的右孩子和右节点的左孩子。
(3)如果都相等返回TRUE

在这里插入图片描述

代码如下:

public boolean isSymmetric1(TreeNode root) {return compare(root.left, root.right);}private boolean compare(TreeNode left, TreeNode right) {if (left == null && right != null) {return false;}if (left != null && right == null) {return false;}if (left == null && right == null) {return true;}if (left.val != right.val) {return false;}// 比较外侧boolean compareOutside = compare(left.left, right.right);// 比较内侧boolean compareInside = compare(left.right, right.left);return compareOutside && compareInside;}
http://www.lryc.cn/news/66019.html

相关文章:

  • JVM学习随笔03——Java堆中new一个对象的步骤
  • 虹科方案 | CEMEX 使用HK-Edgility 智能边缘计算平台简化其企业 WAN 管理和运营
  • rk3568 系统移植和编译
  • 深度解析C++异常处理机制:分类、处理方式、常见错误及11新增功能
  • FPGA时序约束(四)主时钟、虚拟时钟和时钟特性的约束
  • JNI开发
  • JAVA有哪些特点?
  • 使用读写锁提高并发
  • 使用@PropertySource加载配置文件
  • 事务及分布式事务解决方案
  • 【思科、华为、华三、锐捷网络设备巡检命令】
  • 代码随想录算法训练营第五十二天
  • 【Linux网络】传输层中UDP和TCP协议
  • 工具︱ Web3加密浏览器Brave有什么特别之处?
  • 绝对不能错过这份沃尔玛实用插件工具大全
  • 【Java】字符串模板拼接的方法
  • Vue3项目中使用ECharts图表并实现自适应效果
  • 快速跑通环信IM Android Demo
  • leetcode解题思路分析(一百三十九)1190 - 1196 题
  • PHP+vue基于web的小区物业管理管理系统1995a
  • 区间预测 | MATLAB实现QRCNN卷积神经网络分位数回归时间序列区间预测
  • 【AI 导航网站】为了更好的收集 AI 资源,我开发了一个 AI 导航网站
  • 谈谈HMI 的自动化生成技术
  • docker安装elasticsearch
  • Docker:使用dockerFile创建镜像(war包和jar包)
  • 2.基础篇
  • 取代你的可能不是AI,而是比你更会使用AI的人
  • NECCS|全国大学生英语竞赛C类|词汇和语法|语法题|时态 非谓语动词 |19:00~20:15|完形填空·词性转化
  • 【高等数学笔记】Stolz定理
  • 【24】核心易中期刊推荐——图像处理研究大数据及智能处理研究