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

题目描述:

方法一:

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. Sql批量修改语句

    修改某个数字类型字段 SET @num = 10000000000001; #定义初始化变量参数 UPDATE ckys_me #更新的表 SET openid = (@num := @num+1) ...

  2. 【JDK1.8】Java 栈实现方式

    看到一道面试题,问Java中栈的实现方式,记录下一些实现细节. API中有5个方法,分别是: boolean empty() E peek() E pop() E push() int search( ...

  3. 通信有连接有消息队列选择boost.asio

    通信有连接有消息队列选择boost.asio 连接自主管理 消息队列自主管理

  4. 40th 要掀桌子么 还是尬坐吧

    今日学习精华:     面向对象编程里面有一句  非常经典的描述:-----通过类实例化一个对象,通过对象调方法-----   注意:对象调用的  方法 ,即 函数一定要有  参数      def  ...

  5. CSIC_716_20191209【并发编程---GIL和协程】

    GIL   Global Interpreter Lock 全局解释锁 GIL对含IO的任务来说,会出现不能保证数据安全的情况.如下: from threading import Thread fro ...

  6. Boost Download

    { //https://www.boost.org/users/history/version_1_71_0.html }

  7. Delphi 常用API 函数列表

    Delphi 常用API 函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小AnyPopup 判断屏幕上是否存在任何弹出式窗口ArrangeIconicWi ...

  8. springcolud依赖

    <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot ...

  9. v-model 双向数据绑定以及修饰符

    <!--v-model 实现双向数据绑定 其中一个值发生改变,另一个值也将实时发生改变--> <div id="app09"> <h1>{{ m ...

  10. BZOJ 4698: Sdoi2008 Sandy的卡片(后缀数组+差分+二分答案)

    传送门 解题思路 看到一个子串加一个数字到另一个子串,自然可以想到差分.然后要把所有串都拼起来,求出\(height\)数组后可以二分答案来做,每次二分一个答案后统计一下连续的\(height> ...