本文主要是介绍代码随想录 -- 二叉树 -- 平衡二叉树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
110. 平衡二叉树 - 力扣(LeetCode)
思路:仍然是递归调用
1. 定义一个递归函数 count 用来计算二叉树的层数
2. isBalanced 函数:如果传入根节点为空返回真;如果根节点 | 左子树的层数 - 右子树的层数 | 大于1,返回假;最后返回根节点左子树、右子树是否是平衡二叉树。
class Solution(object):def count(self,root):if root==None:return 0else:return 1+max(self.count(root.left),self.count(root.right))def isBalanced(self, root):if root==None:return Trueif abs(self.count(root.left) - self.count(root.right))>1:return Falsereturn self.isBalanced(root.left) and self.isBalanced(root.right)
这篇关于代码随想录 -- 二叉树 -- 平衡二叉树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!