zoukankan      html  css  js  c++  java
  • JZ39 平衡二叉树

    平衡二叉树

    题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。

    在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树
    平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
     
    func maxDepth(root *TreeNode) int {
        if root == nil {
            return 0
        }  
        //不平衡的时候用-1表示
        left := maxDepth(root.Left)
        right := maxDepth(root.Right)
        
        if left == -1 || right == -1 || abs(left - right) > 1 {
            return -1
        }
        
        return max(left, right) + 1
    }
    
    func max(a, b int) int {
        if a < b {
            return b
        }
        return a
    }
    
    func abs(c int) int {
        if c < 0 {
            return -c
        }
        return c
    }
    
    func IsBalanced_Solution(root *TreeNode) bool {
        if root == nil {
            return true
        }
        
        return maxDepth(root) != -1
    }

  • 相关阅读:
    python操作excel表格
    重学Java
    重学Java
    重学Java
    重学Java
    重学Java
    博客园自定义主题及目录组件
    重学Java
    修改 Eclipse 背景颜色的高级方法
    dbf转excel
  • 原文地址:https://www.cnblogs.com/dingxiaoqiang/p/14641095.html
Copyright © 2011-2022 走看看