基礎知識:
1.二叉樹第i層最多有2^(i-1)個結點。
2.深度為k的二叉樹至多有2^k-1個結點。
一個完全二叉樹有七百個結點,問該二叉樹有多少個葉子結點
根據“二叉樹的第i層至多有2^(i − 1)個結點;深度為k的二叉樹至多有2^k − 1個結點(根結點的深度為1)”這個性質:
因為2^9-1 < 700 < 2^10-1 ,所以這個完全二叉樹的深度是10,前9層是一個滿二叉樹,
這樣的話,前九層的結點就有2^9-1=511個;而第九層的結點數是2^(9-1)=256
所以第十層的葉子結點數是700-511=189個;
現在來算第九層的葉子結點個數。
由於第十層的葉子結點是從第九層延伸的,所以應該去掉第九層中還有子樹的結點。因為第十層有189個,所以應該去掉第九層中的(189+1)/2=95個;
所以,第九層的葉子結點個數是256-95=161,加上第十層有189個,最后結果是350個。
一個有 800 個結點的完全二叉樹,問有_____個葉子結點?
答案:400