0. 树中结点的结构:
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
1. 树的深度:
def TreeDepth(self,pRoot):
if(not pRoot):
return 0
else:
nLeft = self.TreeDepth(pRoot.left)
nRight = self.TreeDepth(pRoot.right)
return max(nLeft+1,nRight+1)
解释:nLeft,nRight 分别表示pRoot的左右结点的深度,返回两者中较大的,即为深度。
2. 判断是否为平衡树:
平衡树:树中任意结点的左右子树深度差小于或者等于1.
def IsBalanced_Solution(self, pRoot): #判断是否为平衡二叉树
if(not pRoot):
return True
else:
if abs(self.TreeDepth(pRoot.left)-self.TreeDepth(pRoot.right))>1: #当某一结点的左右子树高度