博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode]Balanced Binary Tree @ Python
阅读量:7172 次
发布时间:2019-06-29

本文共 938 字,大约阅读时间需要 3 分钟。

原题地址:http://oj.leetcode.com/problems/balanced-binary-tree/

题意:判断一颗二叉树是否是平衡二叉树。

解题思路:在这道题里,平衡二叉树的定义是二叉树的任意节点的两颗子树之间的高度差小于等于1。这实际上是AVL树的定义。首先要写一个计算二叉树高度的函数,二叉树的高度定义为:树为空时,高度为0。然后递归求解:树的高度 = max(左子树高度,右子树高度)+1(根节点要算上)。高度计算函数实现后,递归求解每个节点的左右子树的高度差,如果有大于1的,则return False。如果高度差小于等于1,则继续递归求解。

代码:

# Definition for a  binary tree node# class TreeNode:#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution:    # @param root, a tree node    # @return a boolean    def Height(self, root):        if root == None:            return 0        return max( self.Height( root.left ), self.Height( root.right ) ) + 1        def isBalanced(self, root):        if root  == None:            return True        if abs( self.Height( root.left ) - self.Height( root.right ) ) <= 1:            return self.isBalanced( root.left ) and self.isBalanced( root.right )        else:            return False

 

转载地址:http://arfzm.baihongyu.com/

你可能感兴趣的文章
使用Aouth2进行身份验证
查看>>
我们有助教啦
查看>>
一个有关原型的问题牵扯出的问题
查看>>
P53 T3
查看>>
关于 tensorflow-gpu 中 CUDA 和 CuDNN 版本适配问题
查看>>
1、JUC--volatile 关键字-内存可见性
查看>>
LeetCode: Minimum Depth of Binary Tree
查看>>
可运行的代码
查看>>
Oracle数据库添加新字段后加载页面报错 java.lang.IllegalArgumentException
查看>>
CSU 1505: 酷酷的单词【字符串】
查看>>
198. 打家劫舍
查看>>
错误之处(二)
查看>>
解决insert语句插入时,需要写列值的问题
查看>>
CSS选择器 < ~ +
查看>>
Opengl_es模型矩阵位置:glFrustumx与glTranslatef参数的相互影响--立方体旋转特效
查看>>
JS小功能系列8省市联动
查看>>
《程序是怎样跑起来的》第八章读后感
查看>>
YCD 软件更新方法
查看>>
CentOS 6.5 + Nginx 1.8.0 + PHP 5.6(with PHP-FPM) 负载均衡源码安装 之 (四)问题汇总
查看>>
mybatis中的#和$的区别
查看>>