首页 > 其他分享 >【刷题笔记】110. Balanced Binary Tree

【刷题笔记】110. Balanced Binary Tree

时间:2023-11-15 22:00:50浏览次数:32  
标签:Binary TreeNode binary int tree Tree 110 return null

题目

Given a binary tree, determine if it is height-balanced.

For this problem, a height-balanced binary tree is defined as:

a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

Example 1:

Given the following tree [3,9,20,null,null,15,7]:

    3
   / \
  9  20
    /  \
   15   7

Return true.

Example 2:

Given the following tree [1,2,2,3,3,null,null,4,4]:

       1
      / \
     2   2
    / \
   3   3
  / \
 4   4

Return false.

题目大意

判断一棵树是不是平衡二叉树。平衡二叉树的定义是:树中每个节点都满足左右两个子树的高度差 <= 1 的这个条件。

解题思路

根据定义判断即可,计算树的高度是第 104 题。

参考代码

package leetcode

import (
	"github.com/halfrost/LeetCode-Go/structures"
)

// TreeNode define
type TreeNode = structures.TreeNode

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */

func isBalanced(root *TreeNode) bool {
	if root == nil {
		return true
	}
	leftHight := depth(root.Left)
	rightHight := depth(root.Right)
	return abs(leftHight-rightHight) <= 1 && isBalanced(root.Left) && isBalanced(root.Right)
}

func depth(root *TreeNode) int {
	if root == nil {
		return 0
	}
	return max(depth(root.Left), depth(root.Right)) + 1
}

func abs(a int) int {
	if a > 0 {
		return a
	}
	return -a
}

func max(a int, b int) int {
	if a > b {
		return a
	}
	return b
}

标签:Binary,TreeNode,binary,int,tree,Tree,110,return,null
From: https://blog.51cto.com/u_16110811/8408112

相关文章

  • CF570D Tree Requests
    题意给定一棵根为\(1\)的有根树,以及字符串\(S\)。\(x,h\)求\(x\)的子树内,深度为\(h\)的节点的字符能否重排为一个回文串。Sol不难发现,回文串显然至多有一个字符出现奇数个。所以我们对于每种字符随机附权值,维护前缀异或值。查询时枚举\(26\)种为奇数的情况,这是......
  • python tkinter treeview 仿 excel表格
    代码:fromtkinterimportttkfromtkinterimport*root=Tk()#初始框的声明columns=("姓名","IP地址")treeview=ttk.Treeview(root,height=18,show="headings",columns=columns)#表格treeview.column("姓名",width=100,a......
  • 决策树(Decision Tree)
    决策树是一种基于树结构的分类和回归模型,它通过对数据进行逐步的分解,从根节点开始,根据不同的特征进行分割,最终到达叶节点,叶节点对应一个预测结果。以下是决策树的基本概念和构建过程的详细解释:决策树的基本概念:节点(Node):根节点(RootNode):树的起始节点,包含整个数据集。内部节......
  • 20231109 我如何看待命题:计算机不能解决那些计算机外部世界无解决方法的问题
    “解释为什么计算机不能解决那些计算机外部世界无解决方法的问题”是《计算机科学导论》第一章的第一道课后习题,以下是我的回答:在2023年的今天,我并不完全认同这个问题预设的命题,即“计算机不能解决那些计算机外部世界无解决方法的问题”(以下简称“命题A”)。1、什么是“计算机”......
  • TreeSet
      ......
  • AT_tdpc_tree 木
    题目描述:给定一棵大小为\(n\)的树,用另外\(n\)个点加边构造出这棵树,要求构造时所被边连到的点联通,求有多少连边顺序。数据范围:\(1\leqn\leq1000\)。思路:首先我们发现,因为题目要求连边后一定是一个连通块,所以考虑以哪一个点作为起点,然后向下连边。所以我们得到一个初......
  • element-ui tree 异步树实现勾选自动展开、指定展开、指定勾选
    element-uitree异步树实现勾选自动展开、指定展开、指定勾选 背景项目中用到了vue的element-ui框架,用到了el-tree组件。由于数据量很大,使用了数据懒加载模式,即异步树。异步树采用复选框进行结点选择的时候,没法自动展开,官方文档找了半天也没有找到好的办法!找不到相关的配......
  • Oracle启动数据库报ORA-01102解决办法
    1.机器启动之后登录服务器使用sqlplus/assysdba登录数据库发现数据库并没有启动之前把数据库服务添加过开机自启动![在这里插入图片描述](https://img-blog.csdnimg.cn/c25a5e40f3274621b708d974065bf650.png)2.使用startup命令启动数据库报错了SYS@orcl>startup;ORACLE例程已......
  • D. Score of a Tree
    D.ScoreofaTreeYouaregivenatreeof$n$nodes,rootedat$1$.Everynodehasavalueofeither$0$or$1$attime$t=0$.Atanyintegertime$t>0$,thevalueofanodebecomesthebitwiseXORofthevaluesofitschildrenattime$t-1$;theva......
  • 如何正确使用外汇110网查平台?一键Get识别黑平台
    在外汇110网中,平台信息众多,投资者该如何通过这些信息识别黑平台?如何使用外汇110网识别黑平台? 投资者在审核平台时,可以通过在外汇110网搜索交易商名称或官网查询交易商,点击即可进入交易商信息界面。在交易商界面投资者可以重点关注以下信息:成立时间。成立时间的长短可以侧面反......