回覆列表
  • 1 # 我是阿嘛

    平衡二叉樹是指一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹,即所有結點,其左右子樹高度差不超過1。

    判讀步驟是:

    先計算所有結點的高度,高度是從葉節點開始(其高度為1)自底向上逐層累加的,不同葉子節點計算開始計算時,高度不同取最大值。

    然後計算結點左右子樹的高度差,如果絕對值都不超過1,就是平衡的。

    例子:

    A

    / \

    B C

    / \

    D E

    高度是 D:1 E:1 B:2 C:1 A:3,A的高度差為1, B為0 C為0 葉子結點可以不用計算,肯定為0。上述例子的二叉樹就是平衡的二叉樹。

    看一下例子

    A

    / \

    B C

    / \

    D E

    /

    F

    高度是 F:1 D:2 E:1 B:3 C:1 A:4,其中A的左右子樹高度差B3 - A1 = 2,高度差大於2,所以不平衡。

    當然實際判斷是不是平衡二叉樹,不一定需要計算每一個結點高度,因為左子樹高一點或者右子樹高一點,表面看過去還是比較明顯的,計算一下比較明顯的幾個點就可以。

  • 中秋節和大豐收的關聯?
  • 宋徽宗時期為何軍隊都如此不堪一擊?