美文网首页
平衡二叉树

平衡二叉树

作者: 只为此心无垠 | 来源:发表于2018-05-02 22:23 被阅读2次

    LeetCode题目地址

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

    时间复杂度是O(n),后序遍历
    参考文章二叉树

        def isBalancedTree(self, pRoot):
            if pRoot is None:
                return 0,True
            right,isBalancedRight = self.isBalancedTree(pRoot.right)
            left,isBalancedLeft = self.isBalancedTree(pRoot.left)
            depth = max(left, right) +1
            if isBalancedRight and isBalancedLeft:
                diff = abs(left - right)
                if diff <= 1:
                    return depth,True
            return depth,False
                
        def isBalanced(self, root):
            # write your code here
            depth,isba = self.isBalancedTree(root)
            return isba

    相关文章

      网友评论

          本文标题:平衡二叉树

          本文链接:https://www.haomeiwen.com/subject/vxxdqftx.html