码迷,mamicode.com
首页 > 其他好文 > 详细

判断是否为平衡二叉树

时间:2020-04-28 12:29:39      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:__init__   subject   scribe   title   init   max   turn   输入   深度   

题目描述

输入一棵二叉树,判断该二叉树是否是平衡二叉树。
 
在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树
解法1:逐个判断每个节点
 1 # -*- coding:utf-8 -*-
 2 # class TreeNode:
 3 #     def __init__(self, x):
 4 #         self.val = x
 5 #         self.left = None
 6 #         self.right = None
 7 class Solution:
 8     def IsBalanced_Solution(self, pRoot):
 9         # write code here
10         if  not pRoot:
11             return True        
12         if abs(self.tree(pRoot.left) -self.tree(pRoot.right))>1:
13             return False
14         return self.IsBalanced_Solution(pRoot.left) and self.IsBalanced_Solution(pRoot.right)
15   
16     def tree(self,pRoot):
17         # 求深度
18         if not pRoot:
19             return 0
20         if not pRoot.left and not pRoot.right:
21             return 1
22         return max(self.tree(pRoot.left),self.tree(pRoot.right))+1
23        
24         

 

 

 

判断是否为平衡二叉树

标签:__init__   subject   scribe   title   init   max   turn   输入   深度   

原文地址:https://www.cnblogs.com/shuangcao/p/12793177.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!