判断一个二叉树是不是对称二叉树
/**
*
* 思路 :对称二叉树是关于中间轴对称的
*
* 从根节点出发,判断根节点是不是对称的,假如根节点对称(左节点的值和右节点的值相等),
* 再判断左节点的左节点和右节点的右节点
* 左节点的右节点和右节点的左节点是不是对称的
*
* 本质是根据节点去找镜像点比较
*/
/*** * 思路 :对称二叉树是关于中间轴对称的* * 从根节点出发,判断根节点是不是对称的,假如根节点对称(左节点的值和右节点的值相等),* 再判断左节点的左节点和右节点的右节点* 左节点的右节点和右节点的左节点是不是对称的* * 本质是 根据节点去找镜像点比较*/ public class TreeSymmetric {public static boolean isSymmetric(TreeNode root) {if (root == null)return true;return isMirror(root.left, root.right);}public static boolean isMirror(TreeNode left , TreeNode right) {if (left == null && right == null)return true; // 两个都是nullif (left == null || right == null)return false; // 有一个是nullreturn left.val == right.val && isMirror(left.left, right.right) && isMirror(left.right, right.left); //递归 }public static class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}}public static void main(String[] args) {TreeNode root = new TreeNode(20);root.left = new TreeNode(21);root.right = new TreeNode(21);root.left.left = new TreeNode(15);root.right.right = new TreeNode(15);root.left.right = null;root.right.left = null;System.out.println(isSymmetric(root));}}
转载于:https://www.cnblogs.com/moris5013/p/11066157.html
判断一个二叉树是不是对称二叉树相关推荐
- 代码随想录【day 14 二叉树】| 层序遍历 226.翻转二叉树 101.对称二叉树
代码随想录[day 14 二叉树]| 层序遍历 226.翻转二叉树 101.对称二叉树 层序遍历 卡哥文解 视频讲解 题目链接:102.二叉树的层序遍历 解题思路 代码实现 题目链接:107.二叉树的 ...
- 判断一个字符串是否对称
判断一个字符串是否对称 如一个字符串"abcba",就是对称的 而"abcda"之类的,就不是对称的: 意思就是两个字符串对折起来之后能重合的就是对称.. 具体 ...
- 《剑指offer》-- 二叉树的下一个结点、对称二叉树、按之字性顺序打印二叉树、把二叉树打印成多行
一.二叉树的下一个结点: 1.题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 2.解题思路: 分析二叉树 ...
- 剑指offer之中判断二叉树是不是对称二叉树(递归和非递归实现)
1 问题 判断二叉树是不是对称(递归和非递归实现) 如下二叉树,就是对称的二叉树 23 3 1 4 4 1 如下二叉树,就是非对称的二叉树 23 3 1 4 4 2 2 代码实现 #include & ...
- 判断一个数列是不是搜索二叉树后续遍历输出的结果
剑平面阿里被问到这个,刚开始画了下看有什么性质,乱蒙了几个都被推翻了,初始感觉就是要O(n)的,因为印象中BST的构树都可以O(nlogn)搞定.然后剑平说最后一个数肯定是根节点,一下反应过来了,就是 ...
- day23【代码随想录】翻转二叉树、对称二叉树、相同的树、另一棵树的子树、完全二叉树的结点个数
文章目录 前言 一.翻转二叉树(力扣226) 1.递归法 1.使用前序遍历 2.使用后序遍历 2.迭代法 1.层序遍历 二.对称二叉树(力扣101) 三.相同的树(力扣100) 四.另一棵树的子树(力 ...
- 代码随想录算法训练营第十五天 | 102. 二叉树的层序遍历 | 226.翻转二叉树 | 101. 对称二叉树
递归三部曲 确定递归函数的参数和返回值 确定终止条件 确定单层递归的逻辑 102. 二叉树的层序遍历 题解及想法 解法一 :递归法 class Solution {public List<Lis ...
- AJPFX实列判断一个字符串是不是对称字符串
import java.util.Scanner; /** 判断一个字符串是否是对称字符串 */ public class StringDemo { public static void main(S ...
- 写一个方法判断一个字符串是否对称_判断一个男生是否好色的方法
▾ 我们店只招黑喵哦? ▾ 其实也不是不能理解为什么男的要跑? ▾ 有什么相见恨晚的小知识?? ▾ 见证奇迹?:是不是穿过去了!? ▾ 医学奇迹? ▾ 卧槽流劈!?真的超光速了! ▾ 细节很到位啊几位 ...
最新文章
- iisnode默认不支持PUT和DELETE的解决
- 第四章 纤维结构对染色性能的影响单元测验
- laravel 分页带参数
- VMware Converter迁移linux系统虚拟机
- 20191122每日一句
- 腾讯x5内核(TBS)集成使用详解(webView视频播放)
- css设置字母数字字体库信息
- 以 ARM 开发板 和 Arduino UNO 开发板通过串口通信为例,思考嵌入式设备之间通过串口通信的问题总结
- 568A以及568B线序
- java-assured_rest-assured之获取响应数据(Getting Response Data)
- 从零开始做单相逆变电源(软件)
- 史上最全《JMeter压力测试教程》——通俗易懂,3天即可学会
- foxmail发邮件时总提示接收密码错误是怎么回事
- 程序员晒工资,工作 3 年被应届生倒挂!网友:工作 8 年被你倒挂!
- 谈谈互联网时代的信息安全——如何让自己不受骗
- 机器学习(回归二)——线性回归-最小二乘-代码实现
- LeetCode刷题(45)~位1的个数【布赖恩·克尼根算法】
- 如何自定义hpa metric server
- bugku 告诉你个秘密(ISCCCTF) (636A56355279427363446C4A49454A7154534230526D6843 56445A31614342354E326C4B494)
- java中的for语句格式_Java中foreach循环语句的格式可以写成( )。
热门文章
- 电脑鼠标失控自己乱点_在这款沙盒游戏里,你只需要乱点鼠标就能成为建筑艺术家...
- 社区发现(二)--GN
- 人脸检测(六)--haar分类器代码理解
- java 降低jdk版本_jdk1.7降级到1.6 | 学步园
- mysql读写分离 保持数据一致性_读写分离数据库如何保持数据一致性
- 【C++入门】C++ 输入输出和文件操作
- I/O写入的原子性(Double Write)
- kafka/producer.lua:168: attempt to perform arithme
- Zephyr_overlay文件讲解
- C++_public、private、protected权限介绍