c#二叉树 取叶子节点个数_二叉树的最小深度+完全二叉树的节点个数
二叉樹(shù)的最小深度
題目:給定一個(gè)二叉樹(shù),找出其最小深度。
最小深度是從根節(jié)點(diǎn)到最近葉子節(jié)點(diǎn)的最短路徑上的節(jié)點(diǎn)數(shù)量。
說(shuō)明:葉子節(jié)點(diǎn)是指沒(méi)有子節(jié)點(diǎn)的節(jié)點(diǎn)。
示例 1:
輸入:root = [3,9,20,null,null,15,7]
輸出:2
示例 2:
輸入:root = [2,null,3,null,4,null,5,null,6]
輸出:5
提示:
樹(shù)中節(jié)點(diǎn)數(shù)的范圍在 [0, 105] 內(nèi)
-1000 <= Node.val <= 1000
解題思路
我們用層次遍歷來(lái)找到從第二層開(kāi)始的最低層的葉子節(jié)點(diǎn)就能得到二叉樹(shù)的最小深度。只有當(dāng)左右孩子都為空的時(shí)候,才說(shuō)明遍歷的最低點(diǎn)了。如果其中一個(gè)孩子為空則不是最低點(diǎn)。
代碼展示
代碼如下:
class完全二叉樹(shù)的節(jié)點(diǎn)個(gè)數(shù)
題目:給出一個(gè)完全二叉樹(shù),求出該樹(shù)的節(jié)點(diǎn)個(gè)數(shù)。
說(shuō)明:
完全二叉樹(shù)的定義如下:在完全二叉樹(shù)中,除了最底層節(jié)點(diǎn)可能沒(méi)填滿外,其余每層節(jié)點(diǎn)數(shù)都達(dá)到最大值,并且最下面一層的節(jié)點(diǎn)都集中在該層最左邊的若干位置。若最底層為第 h 層,則該層包含 1~ 2h 個(gè)節(jié)點(diǎn)。
示例:
解題思路
同樣這題我們可以通過(guò)層次遍歷來(lái)記錄二叉樹(shù)節(jié)點(diǎn)個(gè)數(shù),每從隊(duì)列中push一個(gè)節(jié)點(diǎn)就讓num++,最后得到二叉樹(shù)節(jié)點(diǎn)總個(gè)數(shù)。
代碼展示
代碼如下:
class 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的c#二叉树 取叶子节点个数_二叉树的最小深度+完全二叉树的节点个数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 摩托罗拉 moto Razr+ 2023
- 下一篇: php winform通信,C# Win