計算二叉樹中葉子結點個數的方法


基礎知識:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM