算法题 19 二叉平衡树检查 牛客网 CC150
2024-10-12 19:38:41
算法题 19 二叉平衡树检查 牛客网 CC150
实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。
给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。
解题代码:时间复杂度为O(NlogN) N为树中的节点数
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Balance:
def isBalance(self, root):
# write code here
if not root:
return True
heightDiff=self.getHeight(root.left)-self.getHeight(root.right)
if abs(heightDiff)>1:
return False
else:
return self.isBalance(root.left) and self.isBalance(root.right) def getHeight(self,root):
if not root:
return 0
return max(self.getHeight(root.left),self.getHeight(root.right))+1
解题代码二:优化版,时间复杂度为O(N),空间复杂度为O(H),H为树的高度
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Balance:
def isBalance(self, root):
# write code here
if self.checkHeight(root)==-1:
return False
else:
return True def checkHeight(self,root):
if not root:
return 0 #高度为0
leftHeight=self.checkHeight(root.left)
if leftHeight==-1:
return -1 # 不平衡 rightHeight=self.checkHeight(root.right)
if rightHeight==-1:
return -1 # 不平衡
heightDiff=leftHeight-rightHeight
if abs(heightDiff)>1:
return -1
else:
return max(leftHeight,rightHeight)+1
最新文章
- bzoj4491奇技淫巧线段树
- Hibernate的数据删除,更改
- TYVJ P1103 多项式输出 Label:模拟 有点儿坑
- 哈希表用于Key与Value的对应
- BZOJ1816 [Cqoi2010]扑克牌
- vue2.0动态绑定图片src属性值初始化时报错
- 自学WPF之Binding(一)
- HTTP 0.9 HTTP 1.0 HTTP 1.1 HTTP 2.0区别
- Docker私有仓库实例
- Collections与Collection
- 记一次yii2 上传文件
- ES5-ES6-ES7_对象的扩展
- 超恶心的TP模版取值
- 【NET CORE微服务一条龙应用】开始篇与目录
- 13.1 dubbo服务降级源码解析
- spark on yarn任务提交缓慢解决
- python类的全面介绍
- struct2 拦截所有没有登录的用户,强行转到登录界面AuthorizationInterceptor
- 使用uWSGI和nginx来设置Django和你的web服务器
- Unity3D:Text在Inspector面板中中无法显示,需转换成UTF-8格式
热门文章
- Atitit. 真正的全中国文字attilax易语言的特点以及范例
- Triangulation by Ear Clipping(耳切法处理多边形三角划分)
- python 第三方库下载地址
- 转载-好用的linux软件合集
- deepin linux下eclipse c/c++ 调试开源代码
- abp的权限与导航菜单的关系
- Trees on the level UVA - 122 复习二叉树建立过程,bfs,queue,strchr,sscanf的使用。
- Eclipse 生成jar包
- ZJU 17th 校赛
- phpcs,phpmd,phan安装部署,phpstorm配置phpunit