rinetd 二叉树排序 双重检验锁 反射 string ipad charts graphics dtel语言 bluetooth 后台模板 郑州网站建设 河南普通话考试报名 html好看的字体样式 matlab跳出for循环 ssr链接解析 matlab取实部 python的open函数 python打开文件 javaqueue java对象 java连数据库 java运行环境配置 java中的继承 java方法重载 java时间格式化 java特性 视频加字幕软件哪个好 java电子书 linux端口映射 微信昵称找人的软件 ps3d字体 关闭页面 js获取子元素 黑客攻防技术宝典 qq农场图标 qq游戏黑名单 齐论工具箱 点状字体 繁简体转换
当前位置: 首页 > 学习教程  > 编程语言

《剑指Offer》:对称二叉树,请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

2020/12/5 10:55:19 文章标签:

1. 题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 题目分析:先看图 求二叉树的镜像,我们可以再写一个方法,判断是否对称判断为…

1. 题目描述

请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

 题目分析:先看图

  1. 求二叉树的镜像,我们可以再写一个方法,判断是否对称
  2. 判断为空的情况,首先判断左根结点 && 右根节点是否为空,为空的话返回true
  3. 判断不对称的情况, 左根结点 || 右根节点是否为空,返回的是false
  4.  判断对称的情况,使用的方法是递归。具体判断左子树的左孩子和右子树的右孩子是否相等  &&  左子树的右孩子和右子树的左孩子是否相等

2.代码实现

/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
/*
    对称的二叉树,类似于下面的情况
         A
      B      B
    D   C  C   D
    
*/
public class Solution {
    boolean isSymmetry(TreeNode leftRoot,TreeNode rightRoot){
      // 如果左边的和右边的树为空,只有一个,返回true
      if(leftRoot == null && rightRoot == null){
         return true;
      }
      // 判断不对称的情况
      if(leftRoot == null || rightRoot == null){
         return false;
      }
      // 判断对称的情况
      if(leftRoot.val == rightRoot.val){
        // 再判断同层的根结点的左孩子,和同层的右结点的右孩子是否对称
        // 和 左结点的右孩子和右结点的左孩子是否对称,两个条件同时成立
        //知道最后一个结果都返回的是空
        return isSymmetry(leftRoot.left,rightRoot.right) && isSymmetry(leftRoot.right,rightRoot.left);
      }else{
        return false;
      }
    }
    
    boolean isSymmetrical(TreeNode pRoot)
    {
        if(pRoot == null){
          return true;
        }else{
          return isSymmetry(pRoot.left,pRoot.right);
        }
    }
  
}

3.总结

  1. 剑指Offer剩下的只有大部分二叉树和其他相关的难题了。算法真的是要交智商税

  2. 坚持,做完剑指Offer,写一个总结,加油!

 

 

 

 

 

 

 

 

 

 

 

 


本文链接: http://www.dtmao.cc/news_show_450341.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?