zoukankan      html  css  js  c++  java
  • LeetCode--110--平衡二叉树

    问题描述:

    给定一个二叉树,判断它是否是高度平衡的二叉树。

    本题中,一棵高度平衡二叉树定义为:

    一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。

    示例 1:

    给定二叉树 [3,9,20,null,null,15,7]

        3
       / 
      9  20
        /  
       15   7

    返回 true

    示例 2:

    给定二叉树 [1,2,2,3,3,null,null,4,4]

           1
          / 
         2   2
        / 
       3   3
      / 
     4   4
    

    返回 false

    方法1:

    通过求子树深度来求子树是否balance。left - right > 1 return False。递归遍历每一个节点。

     1 class Solution(object):
     2     def isBalanced(self, root):
     3         """
     4         :type root: TreeNode
     5         :rtype: bool
     6         """
     7         if root == None:
     8             return True
     9         left = self.getDepth(root.left)
    10         right = self.getDepth(root.right)
    11         if abs(left - right) > 1:
    12             return False
    13         return self.isBalanced(root.left) and self.isBalanced(root.right)
    14     def getDepth(self,root):
    15         if root == None:
    16             return 0
    17         left = self.getDepth(root.left)
    18         right = self.getDepth(root.right)
    19         return max(left,right) + 1

    变体:

     1 class Solution(object):
     2     def isBalanced(self, root):
     3         """
     4         :type root: TreeNode
     5         :rtype: bool
     6         """
     7         def deep(root):
     8             if not root:
     9                 return 0
    10             l = deep(root.left)
    11             r = deep(root.right)
    12             if abs(l-r)>1:
    13                 self.flag = False
    14             return max(l,r)+1
    15         
    16         self.flag=True
    17         deep(root)
    18         if self.flag == False:
    19             return False
    20         else:
    21             return True

    2018-09-09 18:24:35 

  • 相关阅读:
    Vagrant安装virtualbox
    SQLSERVER排查CPU占用高的情况
    删除重复记录,只留一条
    ASCII码对应表chr(9)、chr(10)、chr(13)、chr(32)、chr(34)、chr(39)、……
    手机和PC端的录屏软件
    2017年初面试总结
    Python面向对象
    Python字体颜色
    Python第二模块总结
    Fiddler使用教程(转)
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/9614505.html
Copyright © 2011-2022 走看看