题意:
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。

思路:
1.当根节点为空时,返回true
2.如果L,R都为空,则返回true
3.如果L或R为空,则返回false. 或者当L.val 不等于 R.val 时。 返回false;
递推工作:
4.最后
判断两节点 L.leftL.left 和 R.rightR.right 是否对称,
即 recur(L.left, R.right) ; 左,右
判断两节点 L.rightL.right 和 R.leftR.left 是否对称,
即 recur(L.right, R.left) ;右,左
返回值: 两对节点都对称时,才是对称树,因此用与逻辑符 && 连接。

Java代码实现:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public boolean isSymmetric(TreeNode root) {return (root == null)? true:recur(root.left,root.right);}public boolean recur(TreeNode L,TreeNode R){if(L == null && R == null) return true;if(L == null || R == null || L.val != R.val) return false;return recur(L.left,R.right)&&recur(L.right,R.left);}
}

二叉树-对称的二叉树(递归法)相关推荐

  1. 二叉树的最小深度——递归法、迭代法

    1题目 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明:叶子节点是指没有子节点的节点. 示例 1: 输入:root = [3,9,20,null,nu ...

  2. 二叉树-二叉树的镜像(递归法)

    题意: 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 二叉树镜像定义: 对于二叉树中任意节点 root,设其左 / 右子节点分别为 left, right :则在二叉树的镜像中的对应 root ...

  3. 二叉树-对称二叉树(递归法)

    题意: 给定一个二叉树,检查它是否是镜像对称的. 中间划开,看是否对称 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / 2 2 / \ / 3 4 4 3 思路:(递归法) 这里镜像 ...

  4. 《剑指offer》非递归法判定二叉树是否是对称的

    题目:请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 解析:该非递归法有点傻傻的,思想是利用队列进行层次遍历.然后翻转该二叉树,再层次遍 ...

  5. 《剑指offer》求二叉树的最小深度(非递归法)

    题目:求二叉树的最小深度(实际上该题来自leetcode) 解析:递归法简单些,下面演示下非递归.无外乎层次遍历二叉树了,思想是用current记录当前层的节点数,next记录下一层的节点数,用队列保 ...

  6. 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)

    1. 题目描述 /**请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的 */ 2. 递归 思路: /**1.只要pRoot.left和pRo ...

  7. Java~二叉树的前中后序遍历的几种方式(递归法,迭代法,标记法等)

    目录 一.结点的定义 二.递归法遍历二叉树 前序遍历 中序遍历 后序遍历 三.迭代(非递归)遍历二叉树 (1).迭代模拟法 前序遍历 中序遍历 后序遍历 (2).空指针标记法 前序遍历 中序遍历 后序 ...

  8. 二叉树前序遍历(递归法和迭代法(即非递归法))——C++

    声明:本文原题主要来自力扣力扣,记录此博客主要是为自己学习总结,不做任何商业等活动 本文主要讲解二叉树的前序遍历递归法和迭代法.中序遍历和后序遍历可以参考博主下面两篇博客:二叉树中序遍历(递归法和迭代 ...

  9. 二叉树中序遍历(递归法和迭代法(非递归法))——C++

    声明:本文原题主要来自力扣,记录此博客主要是为自己学习总结,不做任何商业等活动! 二叉树的遍历有前序遍历.中序遍历.后序遍历和层次遍历,其中二叉树基本知识点可以参考博主上篇博客(二叉树基本知识点图文介 ...

最新文章

  1. java 常用十种设计模式示例归纳 | 已打包请带走
  2. Java集合Vector
  3. BEGINNING SHAREPOINT#174; 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型API范围...
  4. 嵌入式Linux系统编程学习之二十一命名管道(FIFO)
  5. 说说程序员应该知道的术语(中文+英文)
  6. 9 ASCLL 码表
  7. [王垠系列]什么是语义学
  8. 【网站】作为技术人可能要用到的IT技术网址清单,欢迎评论补充
  9. matlab get(gcf,'postion ')相关解释
  10. maven jar坐标和doc引入中央创库没有的jar
  11. Centos 安装OpenStack
  12. Hibernate 主键使用注解 @SequenceGenerator
  13. 操作系统怎样控制硬件
  14. 云服务案例分析 BB平台 Quiz5
  15. adobe cc 系列产品更改默认安装路径方法
  16. 瑞银:2030年Waymo将占自动驾驶出租车市场60% 汽车私有化可能会受到冲击
  17. 关于RTKLIB中用多普勒检测周跳方法的改进和思考
  18. 双十一PPT模板推荐
  19. Duplicate class found in the file
  20. Apache软件基金会项目介绍

热门文章

  1. android 如何获得activity的view对象,Android的Activity 、 Window 、 View之间的关系
  2. .NetCore~框架版本号不同引起dotnet不能run它
  3. 基于easyui开发Web版Activiti流程定制器详解(五)——Draw2d详解(一)
  4. weblogic公布的项目用途myeclipse正常启动,点击startWeblogic.cmd报错解决方案
  5. 04-c#入门(类型转换)
  6. PHP cron中的批处理(转)
  7. 一起谈.NET技术,.Net Discovery系列之-深入理解平台机制与性能影响 (中)
  8. 学习 ARM 系列 -- FS2410 开发板上 Nand Flash 到内存的代码搬移
  9. 分布式缓存,就该这样设计!
  10. 某程序员遭遇奇葩事:辞退自己的leader竟然命令自己回前公司,给前同事讲代码!...