AVL树是一种自平衡二叉树,他要求左右子树的高度相差不能超过1.
python实现代码如下:
#coding:utf-8
class TreeNode(object):
def __init__(self):
self.data=0
self.left=None
self.right=None
self.height=0
class BTree(object):
def __init__(self):
self.root=None
def __Max(self,h1,h2):
if h1>h2:
return h1
elif h1<=h2:
return h2
def __LL(self,r):#左左情况,向右旋转
node=r.left
r.left=node.right
node.right=r
r.height=self.__Max(self.getHeight(r.right),self.getHeight(r.left))+1
node.height=self.__Max(self.getHeight(node.right),self.getHeight(node.left))+1
return node
d