• 93. 平衡二叉树(回顾)


    93. 平衡二叉树

    中文English

    给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。 

    样例

    样例  1:
    	输入: tree = {1,2,3}
    	输出: true
    	
    	样例解释:
    	如下,是一个平衡的二叉树。
    		  1  
    		 /                 
    		2  3
    
    	
    样例  2:
    	输入: tree = {3,9,20,#,#,15,7}
    	输出: true
    	
    	样例解释:
    	如下,是一个平衡的二叉树。
    		  3  
    		 /                 
    		9  20                
    		  /                  
    		 15   7 
    
    	
    样例  2:
    	输入: tree = {1,#,2,3,4}
    	输出: false
    	
    	样例解释:
    	如下,是一个不平衡的二叉树。1的左右子树高度差2
    		  1  
    		                   
    		   2                
    		  /                  
    		 3   4
    	
    
     
     
    输入测试数据 (每行一个参数)如何理解测试数据?

    分治法

    """
    Definition of TreeNode:
    class TreeNode:
        def __init__(self, val):
            self.val = val
            self.left, self.right = None, None
    """
    
    class Solution:
        """
        @param root: The root of binary tree.
        @return: True if this Binary tree is Balanced, or false.
        """
        def isBalanced(self, root):
            # write your code here
            if not root:
                return True 
            
         #分治法
    if not self.isBalanced(root.left): return False if not self.isBalanced(root.right): return False return abs(self.getMaxHeight(root.left) - self.getMaxHeight(root.right)) <= 1 #返回最大高度,当前节点 def getMaxHeight(self, root): if not root: return 0 return max(self.getMaxHeight(root.left), self.getMaxHeight(root.right)) + 1
  • 相关阅读:
    [BZOJ4034][HAOI2015]树上操作
    [BZOJ1030][JSOI2007]文本生成器
    [BZOJ2763][JLOI2011]飞行路线
    [POJ3667]Hotel
    [codevs1566]染色
    [codevs2460]树的统计
    [BZOJ2667][cqoi2012][kcoj]模拟工厂
    [NOI2009][codevs1846]KCOJ0191]植物大战僵尸
    [POJ1087]A Plug for UNIX
    Educational Round 66 题解
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/13416168.html
Copyright © 2020-2023  润新知