二叉樹葉子結點個數和第K層結點的個數

2021-08-07 22:45:08 字數 739 閱讀 3988

求二叉樹葉子結點的個數

1.如果根節點為null時,則是空樹,返回0;

2.根節點不為空時,如果根節點的左右子樹均為空,則該二叉樹中只有乙個節點,即返回1;

3.葉子節點的個數=左子樹葉子節點數+右子樹葉子節點數;

**如下:

int _getnodeyezi(node* root)  //葉子節點的個數

if ((root->_left == null) && (root->_right == null))

return _getnodeyezi(root->_left) + _getnodeyezi(root->_right); //左子樹葉子節點+右子樹葉子節點

}

求第k層的結點個數

1.根節點為空或者k<=0時,返回0;

2.根節點不為空時,k==1時,返回1個,第一層最多只有乙個節點; 

3.第k層節點數: 找到第k層,遞迴得到該層節點數;每次k-1,直到第k層時,k剛好為0,即遞迴結束。

**如下:

int _getnodek(node* root, size_t k)    //第k層節點個數

if (root != null && k == 1)

return _getnodek(root->_left, k - 1) + _getnodek(root->_right, k - 1);

}

求二叉樹葉子結點個數

樹的定義 由乙個或多個 n 0 結點組成的有限集合t,有且僅有乙個結點稱為根 root 當 n 1時,其餘的結點分為m m 0 個相互不相交的有限集合t1,t2,tm。每個集合本身又是棵樹,被稱作這個根的子樹。樹的結構特點 1.非線性結構,有乙個直接前驅,但可能有多個直接後繼 1 n 2.樹的定義具...

計算二叉樹的第k層中所有葉子結點個數

time limit 1000ms memory limit 65535k 題型 程式設計題 語言 無限制 描述二叉鍊錶表示的二叉樹 按先序次序輸入二叉樹中結點的值,字元表示空樹,構造二叉鍊錶表示的二叉樹t 該二叉樹中的結點為單個字元並且無值重複的結點 編寫演算法完成 計算二叉樹的第k層中所有葉子結...

完全二叉樹葉子結點的演算法

完全二叉樹葉子結點的演算法 如果一棵具有n個結點的深度為k的二叉樹,它的每乙個結點都與深度為k的滿二叉樹中編號為1 n的結點一一對應,這棵二叉樹稱為完全二叉樹。可以根據公式進行推導,假設n0是度為0的結點總數 即葉子結點數 n1是度為1的結點總數,n2是度為2的結點總數,由二叉樹的性質可知 n0 n...