二叉樹計算高度

最近自己犯了一個愚蠢至極的錯誤,被問到如何計算一顆平衡二叉樹的高度,居然一時沒想起來,其實答案相當(dāng)簡單,用句老師們經(jīng)常愛講的話就是,這是道送分題啊,結(jié)果自己居然沒把握住...(真恨不得弄死自己)

言歸正傳,如果知道一棵平衡樹的元素數(shù)目m,則二叉樹的高度為log2m,由此可寫出代碼

public class BinaryTreeNode<T> {
    public T element;

    public BinaryTreeNode<T> left, right;

    public BinaryTreeNode(T element) {
        this.element = element;
        this.left = null;
        this.right = null;
    }

    public int numChildren() {
        int childrenCount = 0;
        if (left != null) {
            childrenCount = 1 + left.numChildren();
        }

        if (right != null) {
            childrenCount = childrenCount + 1 + right.numChildren();
        }

        return childrenCount;
    }

    public int getHeight(int nodesNum) {
        return (int)(Math.log(nodesNum) / Math.log(2));
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 樹的概述 樹是一種非常常用的數(shù)據(jù)結(jié)構(gòu),樹與前面介紹的線性表,棧,隊列等線性結(jié)構(gòu)不同,樹是一種非線性結(jié)構(gòu) 1.樹的定...
    Jack921閱讀 4,782評論 1 31
  • 二叉搜索樹,平衡樹,B,b-,b+,b*,紅黑樹 二叉搜索樹 ? 1.所有非葉子結(jié)點至多擁有兩個兒子(Le...
    raincoffee閱讀 4,124評論 3 18
  • 0. 什么是樹 數(shù)據(jù)的基本單位是數(shù)據(jù)元素,在涉及到數(shù)據(jù)處理時數(shù)據(jù)元素之間的關(guān)系稱之為結(jié)構(gòu),我們依據(jù)數(shù)據(jù)元素之間關(guān)系...
    安安zoe閱讀 545評論 0 0
  • 去年二叉樹算法的事情鬧的沸沸揚揚,起因是Homebrew 的作者 @Max Howell 在 twitter 上發(fā)...
    Masazumi柒閱讀 1,685評論 0 8
  • 親愛的女兒: 寫下小標(biāo)題第一個想到的就是你,那個溫暖的善良的有時候有些膽小愛哭的女孩兒。想當(dāng)年我是那個天不怕地不怕...
    榕樹家的故事閱讀 445評論 3 1

友情鏈接更多精彩內(nèi)容