二叉樹節點數量關係

2021-08-07 14:14:39 字數 479 閱讀 3166

node 表示一棵樹節點總數量

node1 表示度為1的節點數量

node2 表示度為2的節點數量]

leaf 表示葉子節點的數量

line 表示一棵樹中莖(也就是兩個節點之間的連線)的數量

顯然:

node -1 =line;

node=node1+node2+leaf;

line=node1 + 2* node2;

那麼 node1+node2+leaf -1 =node1 + 2* node2;

即 leaf-1= node2;

就是說任何一顆二叉樹,度為2 的節點數量是葉子節點的數量 減一 ;

這個知識點有時候可以派上用場,比如在構造 哈夫曼樹的時候,我們已知葉子節點的個數( 設為 n),並且知道哈夫曼樹的中間節點的度都為 2,於是我們可以算出哈夫曼樹總節點數量是n+ (n-1) =2n-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 ...

證明二叉樹節點數公式

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...