證明二叉樹節點數公式

2022-02-10 10:49:18 字數 508 閱讀 4912

n0 葉節點總數

n1 只有1個孩子的節點總數

n2 有2個孩子節點的總數

有: n0=n2+1

不那麼嚴密地證明一下:

假設有完美二叉樹1個, 共k層

那麼最下層k層就是n0=2^(k-1)

再上面一層k-1層之上, 總共的節點, 其實都是有2個孩子的節點, 即 n2=2^(k-1) -1

代換一下就是 n2=n0-1

然後, 我們把完美二叉樹 向 完全二叉樹 推理.

在上面完美二叉樹基礎上,

從右下, 減乙個節點, 這樣造成的結果是, n0少了1個, 然後n2少了乙個, n1多了乙個. 所以n2和n1的關係不變.

然後再右下減乙個節點,n0並沒有減少, 因為少了兩個葉子之後, 這兩個葉子的父節點就變成葉子了. 所以n0不變,n2也不變.n2=n0+1 關係不變.

然後, 把完全二叉樹向一般二叉樹 推理

在上面完全二叉樹的基礎上,

從左下, 減少乙個節點,.... 同上證明~~~

完全二叉樹節點數

題目 給定一棵完全二叉樹的頭節點head,返回這棵樹的節點個數。如果完全二叉樹的節點數為n,請實現時間複雜度低於o n 的解法。方法 1 遞迴o n 演算法 int nodenum struct treenode head return 1 nodenum head left nodenum hea...

完全二叉樹節點數

給定一棵完全二叉樹的頭節點head,返回這棵樹的節點個數。如果完全二叉樹的節點數為n,請實現時間複雜度低於o n 的解法。package main import nc tools type treenode struct param head treenode類 return int整型 func ...

二叉樹節點數量關係

node 表示一棵樹節點總數量 node1 表示度為1的節點數量 node2 表示度為2的節點數量 leaf 表示葉子節點的數量 line 表示一棵樹中莖 也就是兩個節點之間的連線 的數量 顯然 node 1 line node node1 node2 leaf line node1 2 node2...