完全二叉樹的葉子節(jié)點(diǎn)數(shù)

給定一個完全二叉樹,公有840個節(jié)點(diǎn),求葉子節(jié)點(diǎn)的個數(shù)。對于這樣一個題目,我們要推導(dǎo)一個推論來計(jì)算。

基本概念

首先,我們需要掌握基本概念,掌握二叉樹、完全二叉樹的概念,否則無法區(qū)分,這里不再贅述。

接著,需要引入一個在圖中常用,在樹中不常用的概念:度。可以仿借圖的出度來定義理解,二叉樹的度指該節(jié)點(diǎn)引出的邊數(shù)(節(jié)點(diǎn)下面的邊),也即節(jié)點(diǎn)的子節(jié)點(diǎn)樹。那么二叉樹有3種度:

  • n0: 度為0,即為葉子節(jié)點(diǎn)數(shù)量。
  • n1: 度為1,即為只有左子樹或者右子樹的節(jié)點(diǎn)數(shù)量,對于完全二叉樹,只可能存在一種情況,節(jié)點(diǎn)數(shù)為奇數(shù)時有一個節(jié)點(diǎn)只有一個左子樹,所以n1 = 0 or 1。
  • n2:度為2,即有左右節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量。
引理 n0 = n2 + 1

證明:

  • 假設(shè)樹的節(jié)點(diǎn)數(shù)是n,那么n = n0 + n1 + n2。
  • 按照入度考慮一下(節(jié)點(diǎn)上面的邊),除了根節(jié)點(diǎn),每個節(jié)點(diǎn)都有一條入邊,所以邊數(shù)為n-1;而邊的數(shù)量為2*n2 + n1
  • 結(jié)合上面兩個推導(dǎo): n = n0 + n1 + n2 = 2*n2 + n1 + 1,化簡得到n0 = n2 + 1
推理 n0 = n/2 or (n-1)/2

證明:

  • 由于n = n0 + n1 + n2,而n0 = n2 + 1,所以n = 2n0 + n1 - 1
  • 對于完全二叉樹,如果n為偶數(shù),說明不存在只有子節(jié)點(diǎn)的節(jié)點(diǎn),n1 = 0, n0 = (n+1)/2;如果n為奇數(shù),說明存在1個只有左子節(jié)點(diǎn)的節(jié)點(diǎn),那么n1 = 1, n0 = n/2??梢院喜閚0 = (n+1)/2。
小結(jié)

根據(jù)結(jié)論n0 = (n+1)/2, 所以結(jié)果為420。在整個過程中,我們不需要去記憶結(jié)論,而是記住推理的過程,這樣就是利用第一性原理在學(xué)習(xí)。

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

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

  • 樹形結(jié)構(gòu) 在前面章節(jié)中介紹到的數(shù)據(jù)結(jié)構(gòu),都為線性結(jié)構(gòu),比如鏈表,數(shù)組,隊(duì)列等,都屬于線性結(jié)構(gòu),類似于通過一根線串在...
    ducktobey閱讀 1,408評論 0 0
  • 樹的基本概念 節(jié)點(diǎn),根節(jié)點(diǎn),父節(jié)點(diǎn),子節(jié)點(diǎn),兄弟節(jié)點(diǎn)都是屬于樹的范濤; 一棵樹可以沒有任何節(jié)點(diǎn),稱為空樹; 一棵樹...
    coder_feng閱讀 1,239評論 0 0
  • 1. 樹的概念 一個樹由節(jié)點(diǎn)組成,這些節(jié)點(diǎn)包含根節(jié)點(diǎn),父節(jié)點(diǎn),子節(jié)點(diǎn),兄弟節(jié)點(diǎn);沒有任何一個節(jié)點(diǎn)的樹稱為空樹;如果...
    HChase閱讀 6,750評論 0 34
  • 二叉樹是最常用的數(shù)據(jù)結(jié)構(gòu)之一,筆者過去一直將關(guān)注點(diǎn)放在復(fù)雜的樹結(jié)構(gòu)(例如紅黑樹,自平衡樹),認(rèn)為那些才是樹的重要應(yīng)...
    潮汐行者閱讀 3,035評論 0 7
  • 本人正在學(xué)習(xí)的過程中,若有不足或者錯誤,希望能夠指出 希望我寫的這些,能夠幫到看到這篇文章的你 涉及到的知識: 1...
    愿你能溫柔的對待世界閱讀 4,577評論 0 1

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