【Leetcode】【python】Balanced Binary Tree
2017-08-03 04:10
387 查看
题目大意
判断一颗二叉树是否是“高度”平衡的。平衡二叉树的定义是二叉树的任意节点的两颗子树之间的高度差小于等于1。
这实际上是AVL树(维基百科)的定义。
解题思路
递归判断自身和自身左右子树是否都是平衡的。而每个循环内判断的依据就是判断树的深度,之前做过的。
代码
class Solution(object): def maxDepth(self, root): if root == None: return 0 return max(self.maxDepth(root.left), self.maxDepth(root.right))+1 def isBalanced(self, root): """ :type root: TreeNode :rtype: bool """ if root == None: return True if abs(self.maxDepth(root.left) - self.maxDepth(root.right)) > 1: return False return self.isBalanced(root.left) and self.isBalanced(root.right)
总结
and/or的用法要牢记,不仅仅是用在if判断里。相关文章推荐
- [leetCode By Python]110. Balanced Binary Tree
- [leetcode: Python] 110. Balanced Binary Tree
- leetcode 日经贴,python code -Balanced Binary Tree
- [leetcode]Balanced Binary Tree @ Python
- [LeetCode]题解(python):110-Balanced Binary Tree
- [Leetcode]@python 110. Balanced Binary Tree
- Python学习——leetcode(Balanced Binary Tree)
- 【leetCode】 Balanced Binary Tree python版实现
- 【LeetCode with Python】 Balanced Binary Tree
- Balanced Binary Tree Leetcode Python
- 【LeetCode】110. Balanced Binary Tree
- leetcode 110: Balanced Binary Tree
- leetcode第一刷_Balanced Binary Tree
- [LeetCode]题解(python):103-Binary Tree Zigzag Level Order Traversal
- [LeetCode] Balanced Binary Tree
- leetcode_c++:树:Balanced Binary Tree(110)
- [leetcode]Construct Binary Tree from Inorder and Postorder Traversal @ Python
- [leetcode]Binary Tree Preorder Traversal @ Python
- [leetcode]Maximum Depth of Binary Tree @ Python
- LeetCode---Balanced Binary Tree