首页 > 其他分享 >110. 平衡二叉树

110. 平衡二叉树

时间:2023-01-28 16:14:15浏览次数:41  
标签:right return self height 二叉树 平衡 left root 110

问题描述

https://leetcode.cn/problems/balanced-binary-tree/description/

解题思路

这题一开始朴素的思路就是,对于每个节点,都计算其是不是平衡二叉树。

计算平衡二叉树的方式是对其求高度。

这会导致我们搜索了2次。

然而我们可以在一次搜索中干这两件事。用-1来标志失衡状态。

代码

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def isBalanced(self, root: Optional[TreeNode]) -> bool:
        if root is None:
            return True
        return self.height(root)>=0
    def height(self, root):
        if root is None:
            return 0
        left_height = self.height(root.left)
        right_height = self.height(root.right)
        if left_height == -1 or right_height == -1 or abs(left_height-right_height)>1:
            return -1
        return max(left_height, right_height)+1

 

标签:right,return,self,height,二叉树,平衡,left,root,110
From: https://www.cnblogs.com/bjfu-vth/p/17070490.html

相关文章

  • 104. 二叉树的最大深度
    问题描述https://leetcode.cn/problems/maximum-depth-of-binary-tree/description/解题思路二叉树的最大深度,等于左子树的深度和右子树深度的较大值加1(即本层深度).代......
  • 101. 对称二叉树
    问题描述https://leetcode.cn/problems/symmetric-tree/description/解题思路这个题,一看就是递归。既然如此,我们按照递归的一般思路来看,即问题的定义即为问题的解。这......
  • 二叉树的实现-BSTree
    二叉树的实现-BSTree一、树和二叉树1-1树的定义翻译过来就是:树是由结点构成的,结点可以有也可以没有。若有结点,则肯定只有一个根结点。树是一种递归结构,俗称“套娃”......
  • 算法刷题 Day 21 | 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树
    今日内容530.二叉搜索树的最小绝对差501.二叉搜索树中的众数236.二叉树的最近公共祖先  详细布置530.二叉搜索树的最小绝对差需要领悟一下二叉树遍历......
  • 94. 二叉树的中序遍历
    问题链接https://leetcode.cn/problems/binary-tree-inorder-traversal/description/解题思路二叉树的中序遍历。其实深搜和递归是一个道理。搜索必然要通过递归来实现......
  • 代码随想录算法训练营第十三天 二叉树 | 二叉树深度优先遍历 | lc144 二叉树的前序遍
    二叉树种类满二叉树层数为n,节点数为\(2^n-1\)的二叉树完全二叉树除了底层都是满的,底层不一定满,但是从左到右连续二叉搜索树按一定顺序排列的二叉数,如某节点左侧节点......
  • 力扣111 二叉树的最小深度
    题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例:输入:root=[3,9,20,nul......
  • 力扣104 二叉树的最大深度
    题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,nu......
  • 学习笔记-平衡树
    BST平衡树是为了维护二叉搜索树的“平衡”而存在的BST(二叉搜索树)的定义如下:空树是二叉搜索树。若二叉搜索树的左子树不为空,则其左子树上所有点的附加权值均小于其......
  • 二叉树前序、中序、后序遍历非递归写法
    packagedayone.tre;importjava.util.Stack;publicclassPreorderTraversal{/****先序遍历非递归写法*@paramhead*/publicstati......