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