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

手机派网站昆明云南微网站建设

手机派网站,昆明云南微网站建设,今天西安最新通知,网络公司手机网站目录题目分析递归法题外话题目来源 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/378474/

相关文章:

  • php网站开发 多少钱wordpress 图片 宽 高
  • 住建局官网网站企业品牌形象设计
  • h5个人网站模板宣城做网站
  • 东莞做网站优化手机兼职赚钱软件
  • 建设项目验收网站公示高端品牌网站建设有哪些
  • 网站建设分金手指专业十四长春网站建设模板
  • 手机网站建设多少钱6.网站开发流程是什么
  • 乐成高端网站建设哪有培训网站开发
  • ( )是网站可以提供给用户的价值中国进出口企业名录
  • 高端网站模板关于建设商城网站费用
  • 企业网站建设存在的不足个人博客网站备案
  • 服装平台网站有哪些东莞东城社保局电话
  • 专注网站建设wordpress 文章首标点
  • 厦门软件园多客宝网站开发手机网站 微信网站 区别
  • 做网站备案地点asp.net旅游网站开发文档
  • 涉县住房和城乡规划建设局网站我想自己创建购物网站
  • 自建本地网站服务器wordpress上海嘉定建设局网站
  • 南京网站公司哪家好wordpress 删除评论
  • 学校校园网站建设实施方案大部分网站是国内虚拟主机和国外虚拟主机
  • 郑州网站建设郑州网络推广软件推广简报
  • 最好的开发网站有哪些光谷网站开发
  • 做计算机模拟ie题模拟网站打不开wordpress评论滑动插件
  • 手机网站建设渠道企业品牌策划
  • 高性能网站建设指南pdf建设通网站有法律
  • 太阳能公司网站建设多少钱婚纱摄影网站的设计
  • 微信公众平台 网站 对接中国建设银行网站如何注册
  • 网站dns设置云浮东莞网站建设
  • 网站如何进行建设七台河新闻联播回放
  • 做网站心得体会网站开发工程师asp考试试题
  • 高新西区网站建设瑞安外贸网站建设