当前位置: 首页 > news >正文

凯里网站建设go007建设部网站公示钦州公租房摇号查询

凯里网站建设go007,建设部网站公示钦州公租房摇号查询,老会计手把手教做帐官方网站,加强统计局网站的建设和管理目录题目分析递归法题外话题目来源 110. 平衡二叉树 题目分析 平很二叉树:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 二叉树节点的深度和二叉树节点的高度 递归法 递归三步曲 1.明确递归函数的参数和返回值 参数:当前传入节点。 返回值…

目录

    • 题目分析
    • 递归法
    • 题外话

题目来源
110. 平衡二叉树

题目分析

平很二叉树:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。
二叉树节点的深度和二叉树节点的高度
在这里插入图片描述

递归法

递归三步曲

  • 1.明确递归函数的参数和返回值

参数:当前传入节点。
返回值:以当前传入节点为根节点的树的高度。
那么如何标记左右子树是否差值大于1呢?
如果当前传入节点为根节点的二叉树已经不是二叉平衡树了,还返回高度的话就没有意义了。
所以如果已经不是二叉平衡树了,可以返回-1 来标记已经不符合平衡树的规则了。
代码如下:

int getHeight(TreeNode root)
  • 2.明确终止条件

递归的过程中依然是遇到空节点了为终止,返回0,表示当前节点为根节点的树高度为0
代码如下:

        if(root == null){return 0;}
  • 3.明确单层递归的逻辑

如何判断以当前传入节点为根节点的二叉树是否是平衡二叉树呢?当然是其左子树高度和其右子树高度的差值。
分别求出其左右子树的高度,然后如果差值小于等于1,则返回当前二叉树的高度,否则返回-1,表示已经不是二叉平衡树了。
代码如下:

        int leftHeight = getHeight(root.left);   //左if(leftHeight == -1){return -1;}int rightHeight = getHeight(root.right);   //右if(leftHeight == -1){return -1;}int result;if(Math.abs(leftHeight-rightHeight)>1){        //中return -1;}else{result = Math.max(leftHeight,rightHeight)+1;}return result;

整体递归代码如下:

class Solution {public boolean isBalanced(TreeNode root) {return getHeight(root) != -1;}public static int getHeight(TreeNode root){if(root == null){return 0;}int leftHeight = getHeight(root.left);   //左if(leftHeight == -1){return -1;}int rightHeight = getHeight(root.right);   //右if(rightHeight == -1){return -1;}int result;if(Math.abs(leftHeight-rightHeight)>1){        //中return -1;}else{result = Math.max(leftHeight,rightHeight)+1;}return result;}
}

在这里插入图片描述

题外话

很多初学者会在想,不要这个判断行不行,或者这个判断的意义是什么
在这里插入图片描述
我们先去掉两个if运行
在这里插入图片描述
当发现一个节点为-1(第二行),那么递归会回到递归初始,一直为-1然后进行if判断直接返回-1结果,结束了本次方法,右孩子就可以不用判断了
在这里插入图片描述

http://www.yayakq.cn/news/987476/

相关文章:

  • 合肥响应网站案例厦门网络推广
  • 网站的布局部门网站建设注意事项
  • asp做的网站asp源代码长春关键词排名优化
  • 中英文网站案例网站后台功能模块设计
  • 关于春节的网站设计html同城购物网站怎么做
  • 网站服务器有哪些类型后端需要学什么
  • 网站设计制作新参考价格网站建设一个月做十单
  • 宁德市自然资源局东莞seo全网营销
  • 海南省建设执业中心网站h5网页设计报告
  • 承德做网站的公司设计本电脑
  • 国外无版权素材网站做网站分流
  • 广西网站seo遵义做网站推广
  • 兰州专业做网站的公司哪家好中文网址怎么注册
  • photoshop画简单网站html手机网站开发
  • 温州专业微网站制作电话网站建设分解结构
  • 为什么没人做物流网站购物网站建设策划
  • 挂号网站建设专做洗衣柜的网站
  • 中英文微信网站开发微信 网站模板
  • 企业网站界面风格设计描述wordpress中文免费主题
  • 做网络投票网站好做吗广东专业网站优化公司
  • 手机建公司网站台州大型网站建设
  • 中国建设银行官方网站沈阳柳州网站建设服务
  • 上市公司做网站有什么用免费网站访客qq统计系统
  • 媒体网站的销售怎么做合肥企业网站建设工
  • 大航母网站建设与运营网站邮箱代码
  • 企业网站网页设计的步骤设计类投稿网站
  • 深圳营销型网站建设 宝安西乡网站登录不上怎么回事
  • 网站制作可以询价么优易网络公司员工发展
  • 二级域名网站怎么做网站开发协议模板
  • 深圳哪里做网站好潍坊网站制作 熊掌号