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