任一結點的左子樹和右子樹的深度之差不超過1的樹稱為平衡二叉樹。
可通過計算非葉子結點的平衡因子來判斷該樹是否為平衡二叉樹(葉子節點的平衡因子均為0)。
平衡因子 = 左子樹深度 - 右子樹深度
這里有必要辨析一下結點和樹的度;結點的層次、深度;結點和樹的高度(深度)這幾個名詞。
節點的度:節點擁有的子結點個數。
樹的度:樹中結點的最大度數。
結點的層次:從樹根開始定義,根結點為第0層(有些教材中將根結點定位為第1層),它的子結點為第1層,依次類推。
結點的深度:從根結點開始(其深度為0)自頂向下逐層累加的。下圖中,結點B的深度是1,結點D的深度是2,結點H的深度是3。
結點的高度:從葉結點開始(其高度為0)自底向上逐層累加的。下圖中,結點C的高度是2,根結點A的高度是3。
樹的高度(又稱深度):樹中結點的最大層數。下圖樹的高度為3。
根結點A的平衡因子 = 結點A的左子樹的深度 - 結點A的右子樹的深度 = 2 - 3 = -1
結點B的平衡因子 = 結點B的左子樹的深度 - 結點B的右子樹的深度 = 1 - 1 = 0
結點C的平衡因子 = 結點C的左子樹的深度 - 結點C的右子樹的深度 = 2 - 1 = 1