39.バランスバイナリツリー
問題:
入力バイナリツリーは、バイナリツリーは、バランスの取れた二分木か否かが判断されます。
ソリューション:
思想:
平衡二分木の高さの差を意味する(空のツリーを含む)サブツリーツリー約1以下です。
Pythonコード:
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
from collections import deque
class Solution:
def IsBalanced_Solution(self, pRoot):
# write code here
if(pRoot==None):
return True
if(abs(self.deep(pRoot.left)-self.deep(pRoot.right))>1):
return False
return self.IsBalanced_Solution(pRoot.left) and self.IsBalanced_Solution(pRoot.right)
def deep(self,node):
if(node==None):
return 0
nleft=self.deep(node.left)
nright=self.deep(node.right)
return max(nleft+1,nright+1)