题目在这:​​https://leetcode-cn.com/problems/balanced-binary-tree/​

思路分析:

其实这跟前两天求最大深度的代码一样,就加一行就行了。
递归左子树,然后递归右子树,当左子树减去右子树的绝对值大于1的时候,返回False。

完整代码:

class Solution:
def isBalanced(self, root: TreeNode) -> bool:
self.temp = True
def depth(root):
if root == None:
return 0
left_hight = depth(root.left)
right_hight = depth(root.right)
if abs(left_hight - right_hight) >1:
self.temp = False
return max(left_hight,right_hight) + 1
depth(root)
return self.temp

在leetcode上的评论区看到有小伙伴问,这段代码里没有任何的数据定义。怎么求出来深度的。还有小伙伴看到递归,一看就会,一写就废。

关于这些问题大家可以我上一篇的递归求深度的详细步骤分解