定义

AVL 树(平衡二叉树)是一种自平衡的二叉搜索树,由 Adelson-Velsky 和 Landis 发明。树上任一结点的左子树和右子树的高度差(平衡因子)不超过 1。

平衡因子

取值只能是 -1、0、1。

平衡旋转

插入或删除导致不平衡时,通过旋转恢复平衡:

  • LL 旋转(右单旋转):在左子树的左子树插入导致不平衡
  • RR 旋转(左单旋转):在右子树的右子树插入导致不平衡
  • LR 旋转(先左后右双旋转):在左子树的右子树插入导致不平衡
  • RL 旋转(先右后左双旋转):在右子树的左子树插入导致不平衡

性能

  • 查找、插入、删除:
  • n 个结点的 AVL 树的最大深度约为