题目:
已知一颗树有 n n n个非叶子节点,则该树转换为二叉树后有多少个节点无右孩子?
解答:
设该树有
f
f
f个叶子节点,则该树共有
(
f
+
n
)
(f+n)
(f+n)个节点。
一个二叉树节点有2个指针域(左孩子、右孩子),故共有
2
∗
(
f
+
n
)
2*(f+n)
2∗(f+n)个指针域,
非空指针域
(
E
d
g
e
s
=
V
e
r
t
e
x
s
−
1
)
(Edges=Vertexs-1)
(Edges=Vertexs−1):
f
+
n
−
1
f+n-1
f+n−1,
空指针域:
2
∗
(
f
+
n
)
−
(
f
+
n
−
1
)
=
f
+
n
+
1
2*(f+n)-(f+n-1)=f+n+1
2∗(f+n)−(f+n−1)=f+n+1,,
空左指针域:
f
f
f (树的每一个叶子节点转换后都无左孩子),
空右指针域:
f
+
n
+
1
−
f
=
n
+
1
f+n+1-f=n+1
f+n+1−f=n+1
因此共有
n
+
1
n+1
n+1个节点无右孩子