/**
*
* 思路 :对称二叉树是关于中间轴对称的
*
* 从根节点出发,判断根节点是不是对称的,假如根节点对称(左节点的值和右节点的值相等),
* 再判断左节点的左节点和右节点的右节点
* 左节点的右节点和右节点的左节点是不是对称的
*
* 本质是根据节点去找镜像点比较
*/

/*** *   思路  :对称二叉树是关于中间轴对称的*   *   从根节点出发,判断根节点是不是对称的,假如根节点对称(左节点的值和右节点的值相等),*   再判断左节点的左节点和右节点的右节点*   左节点的右节点和右节点的左节点是不是对称的*  *    本质是 根据节点去找镜像点比较*/
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

判断一个二叉树是不是对称二叉树相关推荐

  1. 代码随想录【day 14 二叉树】| 层序遍历 226.翻转二叉树 101.对称二叉树

    代码随想录[day 14 二叉树]| 层序遍历 226.翻转二叉树 101.对称二叉树 层序遍历 卡哥文解 视频讲解 题目链接:102.二叉树的层序遍历 解题思路 代码实现 题目链接:107.二叉树的 ...

  2. 判断一个字符串是否对称

    判断一个字符串是否对称 如一个字符串"abcba",就是对称的 而"abcda"之类的,就不是对称的: 意思就是两个字符串对折起来之后能重合的就是对称.. 具体 ...

  3. 《剑指offer》-- 二叉树的下一个结点、对称二叉树、按之字性顺序打印二叉树、把二叉树打印成多行

    一.二叉树的下一个结点: 1.题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 2.解题思路: 分析二叉树 ...

  4. 剑指offer之中判断二叉树是不是对称二叉树(递归和非递归实现)

    1 问题 判断二叉树是不是对称(递归和非递归实现) 如下二叉树,就是对称的二叉树 23 3 1 4 4 1 如下二叉树,就是非对称的二叉树 23 3 1 4 4 2 2 代码实现 #include & ...

  5. 判断一个数列是不是搜索二叉树后续遍历输出的结果

    剑平面阿里被问到这个,刚开始画了下看有什么性质,乱蒙了几个都被推翻了,初始感觉就是要O(n)的,因为印象中BST的构树都可以O(nlogn)搞定.然后剑平说最后一个数肯定是根节点,一下反应过来了,就是 ...

  6. day23【代码随想录】翻转二叉树、对称二叉树、相同的树、另一棵树的子树、完全二叉树的结点个数

    文章目录 前言 一.翻转二叉树(力扣226) 1.递归法 1.使用前序遍历 2.使用后序遍历 2.迭代法 1.层序遍历 二.对称二叉树(力扣101) 三.相同的树(力扣100) 四.另一棵树的子树(力 ...

  7. 代码随想录算法训练营第十五天 | 102. 二叉树的层序遍历 | 226.翻转二叉树 | 101. 对称二叉树

    递归三部曲 确定递归函数的参数和返回值 确定终止条件 确定单层递归的逻辑 102. 二叉树的层序遍历 题解及想法 解法一 :递归法 class Solution {public List<Lis ...

  8. AJPFX实列判断一个字符串是不是对称字符串

    import java.util.Scanner; /** 判断一个字符串是否是对称字符串 */ public class StringDemo { public static void main(S ...

  9. 写一个方法判断一个字符串是否对称_判断一个男生是否好色的方法

    ▾ 我们店只招黑喵哦? ▾ 其实也不是不能理解为什么男的要跑? ▾ 有什么相见恨晚的小知识?? ▾ 见证奇迹?:是不是穿过去了!? ▾ 医学奇迹? ▾ 卧槽流劈!?真的超光速了! ▾ 细节很到位啊几位 ...

最新文章

  1. iisnode默认不支持PUT和DELETE的解决
  2. 第四章 纤维结构对染色性能的影响单元测验
  3. laravel 分页带参数
  4. VMware Converter迁移linux系统虚拟机
  5. 20191122每日一句
  6. 腾讯x5内核(TBS)集成使用详解(webView视频播放)
  7. css设置字母数字字体库信息
  8. 以 ARM 开发板 和 Arduino UNO 开发板通过串口通信为例,思考嵌入式设备之间通过串口通信的问题总结
  9. 568A以及568B线序
  10. java-assured_rest-assured之获取响应数据(Getting Response Data)
  11. 从零开始做单相逆变电源(软件)
  12. 史上最全《JMeter压力测试教程》——通俗易懂,3天即可学会
  13. foxmail发邮件时总提示接收密码错误是怎么回事
  14. 程序员晒工资,工作 3 年被应届生倒挂!网友:工作 8 年被你倒挂!
  15. 谈谈互联网时代的信息安全——如何让自己不受骗
  16. 机器学习(回归二)——线性回归-最小二乘-代码实现
  17. LeetCode刷题(45)~位1的个数【布赖恩·克尼根算法】
  18. 如何自定义hpa metric server
  19. bugku 告诉你个秘密(ISCCCTF) (636A56355279427363446C4A49454A7154534230526D6843 56445A31614342354E326C4B494)
  20. java中的for语句格式_Java中foreach循环语句的格式可以写成(        )。

热门文章

  1. 电脑鼠标失控自己乱点_在这款沙盒游戏里,你只需要乱点鼠标就能成为建筑艺术家...
  2. 社区发现(二)--GN
  3. 人脸检测(六)--haar分类器代码理解
  4. java 降低jdk版本_jdk1.7降级到1.6 | 学步园
  5. mysql读写分离 保持数据一致性_读写分离数据库如何保持数据一致性
  6. 【C++入门】C++ 输入输出和文件操作
  7. I/O写入的原子性(Double Write)
  8. kafka/producer.lua:168: attempt to perform arithme
  9. Zephyr_overlay文件讲解
  10. C++_public、private、protected权限介绍