原题

给定一个二叉树,检查它是否是镜像对称的。

原理

以根节点划分中心线,检查是否镜像对称。

一个指向从左节点出发,一个节点从右节点出发比较。

左节点的左孩子和右节点的右孩子比较

左节点的右孩子和右节点的左孩子比较

一旦不符合(非对称/值不相同)就返回false

直到叶子节点的空节点仍然没有false,就返回true

代码

class Solution {

public boolean isSymmetric(TreeNode root) {

if(root==null) {

return true;

}

return dfs(root.left,root.right);

}

public boolean dfs(TreeNode left, TreeNode right) {

//一旦不符合就返回false

//如果能遍历到叶子节点说明为true

if(left==null && right==null) {

return true;

}

//一个空一个非空返回false

if(left==null || right==null) {

return false;

}

//值不同返回false

if(left.val!=right.val) {

return false;

}

//左节点的左孩子和右节点的右孩子比较

//左节点的右孩子和右节点的左孩子比较

return dfs(left.left,right.right)

&&dfs(left.right,right.left);

}

}

//https://leetcode-cn.com/problems/symmetric-tree/solution/dong-hua-yan-shi-101-dui-cheng-er-cha-shu-by-user7/

java二叉树镜像_给定一个二叉树,检查它是否是镜像对称的。相关推荐

  1. 二叉树最大深度:给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

    前言: 二叉树刷题是有固定思维的,请移步 README]二叉树刷题框架 二叉树最大深度 题目 点击跳转:LeetCode 此题如果从上向下前序遍历进行判断复杂度过高,因为每次判断一个结点都会涉及到很多 ...

  2. 常考数据结构与算法----给定一个二叉树和一个值 sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径,

    题目描述 给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径, 例如: 给出如下的二叉树,sum=22, 返回 [ [5,4,11,2], [5,8,9] ] 示 ...

  3. 2022-05-22:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p

    2022-05-22:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个节点 p.q,最近公共祖先表示为一个节点 x,满足 x ...

  4. 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先

    给定一个二叉树, 找到该树中两个指定节点的最近公共祖先 三种情况: 1).如果左边为空,右边不为空,则右边的第一个节点就为公共祖先 2).如果右边为空,左边不为空,则左边的第一个节点就为公共祖先 3) ...

  5. Java实验8 T6.绘制一个二叉树

    文章目录 题目要求 Java代码 运行结果 题目要求 绘制如下形式的一个二叉树 Java代码 package text8;import javax.imageio.ImageIO; import ja ...

  6. 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

    百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先).&q ...

  7. Java中找出s字符串的回文_给定一个字符串 s,找到 s 中最长的回文子串。

    题目描述:给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 思路: 判断s[i..j]是否是回文字符串,依赖于s[i+1...j-1],这种一个问题的结果依赖于 ...

  8. java 求最长重复子串_给定一个字符串,求出其最长的重复子串。

    #include #include #include #include using namespace std; //给定一个字符串,求出其最长的重复子串 //方法一 string lsubstr_1 ...

  9. Java:数列排序 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200

    资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列.1<=n<=200 输入格式 第一行为一个整数n. 第二行包含n个 ...

最新文章

  1. Python之装饰器
  2. java匿名启动线程_用java实现匿名内部类启动线程
  3. (三)Docker四种网络模式
  4. java使用:: 表达式_Java 13:切换表达式的增强功能
  5. python pd Series 添加行_Python数据分析与挖掘的常用工具
  6. 怎么关闭电脑开机自动启动的程序_软件自动开启很烦人?如何彻底关掉Mac电脑开机自动开启的应用程序?...
  7. No rule to make target ...
  8. springboot项目报错JedisConnectionException: Could not get a resource from the pool
  9. 52.3. HAVING
  10. java sql update用法_使用if else条件将SQL UPDATE语句转换为php(codeigniter)
  11. win10开启自带wifi共享操作步骤
  12. linux进入不了系统怎么处理,LINUX无法进入系统
  13. 如何查看某台计算机的IP地址 物理地址,显示ip:如何查看电脑ip地址和物理地址(地址)? _ 惠州SEO...
  14. 如何向别人推荐(分享)一本书
  15. 文件MD5/SHA等校验码校验
  16. 常见的弱口令爆破工具
  17. 【酷站】中国互联网Web2.0 Top 100
  18. 刘强东不学编程,今天很可能没有京东......一位码农的发家致富史
  19. 最新仿商城发卡网源码,带图片展示
  20. SNS游戏开发工程师程延辉:介绍开心农场架构

热门文章

  1. 检测、分割用什么轻量级网络呢?
  2. 数字图像基本处理算法小结
  3. 基于深度学习的医学图像配准综述
  4. 计算机视觉方向简介 | 自动驾驶中的车道线跟踪技术
  5. 你知道怎么使用OpenCV检测篮球运动员吗?
  6. 基于OpenCV的网络实时视频流传输
  7. 【OpenCV 4开发详解】直方图操作
  8. junit配合catubuter统计单元测试的代码覆盖率
  9. ajax按钮改变数据状态
  10. Git_学习_06_ 放弃本地修改