📅  最后修改于: 2023-12-03 15:24:52.905000             🧑  作者: Mango
二叉树是计算机科学中的基本数据结构之一,是一种非常常见的数据结构,用于存储有层级关系的数据。在很多应用中,判断二叉树是否是高度平衡的二叉树是非常有意义的,因为它可以帮助我们优化树的操作,提高效率。
高度平衡的二叉树,是一颗满足以下条件的二叉树:
我们可以基于递归来判断一棵二叉树是否是高度平衡的二叉树。具体来说,可以按照以下步骤来实现:
True
。False
。基于以上思路,我们可以实现以下 Python 代码:
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def isBalanced(self, root: TreeNode) -> bool:
if not root:
return True
left_height = self.get_height(root.left)
right_height = self.get_height(root.right)
if abs(left_height - right_height) > 1:
return False
return self.isBalanced(root.left) and self.isBalanced(root.right)
def get_height(self, node: TreeNode) -> int:
if not node:
return 0
return 1 + max(self.get_height(node.left), self.get_height(node.right))
判断一棵二叉树是否是高度平衡的二叉树,是一道比较经典的算法题,有着非常广泛的应用。基于递归的思想,我们可以实现非常简单的算法,并且可以轻松地扩展到其他的问题上。掌握这一算法,对于程序员来说是非常有帮助的。