---恢复内容开始---

题目描述:

方法一:

class Solution(object):
def isBalanced(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
if not root:
return True
if abs(self.countfloor(root.left)-self.countfloor(root.right))>:
return False
else:
return self.isBalanced(root.left) and self.isBalanced(root.right) def countfloor(self,root):
if not root:
return
else:
return max(self.countfloor(root.left),self.countfloor(root.right))+

法二;效率高

class Solution(object):

    is_stop = False     # 为了加快计算速度, 标志是否已经有结果了

    def isBalanced(self, root):
"""
:type root: TreeNode
:rtype: bool
""" def get_depth_and_balance(root):
if self.is_stop: # 已经是非平衡二叉树, 就不需要再计算
return , False if not root:
return , True
if not root.left and not root.right:
return , True ldep, l_is_balanced = get_depth_and_balance(root.left)
rdep, r_is_balanced = get_depth_and_balance(root.right) depth = max(ldep, rdep) +
is_balanced = abs(ldep- rdep) <= and l_is_balanced and r_is_balanced if not is_balanced:
self.is_stop = True
return depth, is_balanced depth, is_balanced = get_depth_and_balance(root)
return is_balanced

leetcood学习笔记-110-平衡二叉树的更多相关文章

  1. Android(java)学习笔记110:Java中操作文件的类介绍(File + IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  2. leetcood学习笔记-20

    python字符串与列表的相互转换   学习内容: 1.字符串转列表 2.列表转字符串 1. 字符串转列表 str1 = "hi hello world" print(str1.s ...

  3. leetcood学习笔记-14*-最长公共前缀

    笔记: python if not   判断是否为None的情况 if not x if x is None if not x is None if x is not None`是最好的写法,清晰,不 ...

  4. leetcood学习笔记-54-螺旋矩阵

    题目描述: 第一次提交: class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: j,x = 0 ...

  5. Android(java)学习笔记110:ScrollView用法

    理论部分 1.ScrollView和HorizontalScrollView是为控件或者布局添加滚动条 2.上述两个控件只能有一个孩子,但是它并不是传统意义上的容器 3.上述两个控件可以互相嵌套 4. ...

  6. daily english dictation 学习笔记[1-10]

    b站网址https://www.bilibili.com/video/av17188299/?p=2 1. Mother Teresa, who received a Nobel Peace Priz ...

  7. leetcood学习笔记-35-二分法

    题目: 第一次提交; class Solution: def searchInsert(self, nums: List[int], target: int) -> int: for i in ...

  8. leetcood学习笔记-28-KMP*

    题目: 第一次提交: class Solution: def strStr(self, haystack: str, needle: str) -> int: if not len(needle ...

  9. leetcood学习笔记-27-移除元素

    题目: 第一次提交: class Solution: def removeElement(self, nums, val: int) -> int: for i in range(len(num ...

随机推荐

  1. 我的黑苹果之路 9400f + msi b360 mortar + 1050ti

    硬件配置: CPU:i5 9400f 主板:微型msi迫击炮B360 内存:威刚 ddr4 8g 2133 *2 显卡:技嘉1050ti 4g 显示器:koiso 4K (使用的dp接口连接,hdmi ...

  2. day05 python字典

    day05 python   一.字典     1.dict 用{}表示, 存放的是: key:value    (开发的都知道的是键值对数据,这样说)         key: 关键字不能重复, 不 ...

  3. string参考

    #include <iostream> #include <string.h> class string { private: char *data; public: stri ...

  4. Java基本数据类型的类型转换规则

    基本类型转换分为自动转换和强制转换. 自动转换规则:容量小的数据类型可以自动转换成容量大的数据类型,也可 以说低级自动向高级转换.这儿的容量指的不是字节数,而是指类型表述的范围. 强制转换规则:高级变 ...

  5. nodejs模块——fs模块 使用fs.write读文件

    fs.write() fs.read(fd,buffer,offset,length[,position],callback(err,bytesWritten,buffer))接收6个参数. 参数说明 ...

  6. vue 项目 多选 问题

    近期 vue 项目用到多选功能,引用的elementUI的级联多选 Cascader,但是没有效果. 后来发现是elementUI版本问题,我们项目用的是2.7.2版本,版本太低. 后来 卸载了 重新 ...

  7. rails问题检查

    在做rails postgresql过程中,使用同事的老代码,然后坐到db:migrate时发现总是报错 这种错误是无法在百度或者google搞定的,需要去进入到底层查看 所以需要进入相关文件看,到d ...

  8. luoguP2709 小B的询问 [莫队]

    题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重 ...

  9. GERALD07加强版题解

    题目描述: N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数. 输入格式: 第一行四个整数N.M.K.type,代表点数.边数.询问数以及询问是否加密. 接下来M行,代表图 ...

  10. java——IO(普通文件,二进制文件,压缩文件 )

    二进制文件 压缩包